<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="feeds/pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:echofeed="https://echofeed.app" xml:lang="en">
  <title>Martin Hähnel&#39;s Blog</title>
  <subtitle>German living in Finland&#39;s north-west. Making money by programming remotely. Loves to write notes.</subtitle>
  <link href="https://blog.martin-haehnel.de/feed.xml" rel="self" />
  <link href="https://blog.martin-haehnel.de/" />
  <updated>2026-04-09T20:01:36Z</updated>
  <id>https://blog.martin-haehnel.de/</id>
  <author>
    <name>Martin Hähnel</name>
  </author>
    <entry>
      <title>
        
          DailyDogo 1595 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/09/dailydogo1595/" />
      <updated>2026-04-09T20:01:36Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/09/dailydogo1595/</id>
      <content type="html">&lt;p&gt;DailyDogo 1595 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking down a forest path.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/466fd0ffd5c7dd6aebe8e46739e1d686.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1595 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1594 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/08/dailydogo1594/" />
      <updated>2026-04-08T19:22:34Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/08/dailydogo1594/</id>
      <content type="html">&lt;p&gt;DailyDogo 1594 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking at the camera and making a face.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e296abb5916afc3afea61ae6214ec66e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1594 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1593 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/07/dailydogo1593/" />
      <updated>2026-04-07T19:52:24Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/07/dailydogo1593/</id>
      <content type="html">&lt;p&gt;DailyDogo 1593 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;image&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5e6a69c0db6c455759cc8c3cc89a0cb7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1593 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1592 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/06/dailydogo1592/" />
      <updated>2026-04-06T18:39:42Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/06/dailydogo1592/</id>
      <content type="html">&lt;p&gt;DailyDogo 1592 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a porch and watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c12ff4015cf9fdcb49d561322b0d8094.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1592 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1591 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/05/dailydogo1591/" />
      <updated>2026-04-05T20:00:17Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/05/dailydogo1591/</id>
      <content type="html">&lt;p&gt;DailyDogo 1591 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in her bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1adc0f506a54f6f723bd0f3a26ec8ec2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1591 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1590 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/04/dailydogo1590/" />
      <updated>2026-04-04T20:56:06Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/04/dailydogo1590/</id>
      <content type="html">&lt;p&gt;DailyDogo 1590 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a porch on a yellow leash fastened to a pole. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4c2adfcb48843114b3fce2362b95f2d4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1590 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1589 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/03/dailydogo1589/" />
      <updated>2026-04-03T20:17:20Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/03/dailydogo1589/</id>
      <content type="html">&lt;p&gt;DailyDogo 1589 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the forest floor, taking a break and smiling into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8168cb0a24e83d3b85e9af64916047ff.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1589 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1588 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/03/dailydogo1588/" />
      <updated>2026-04-03T06:55:54Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/03/dailydogo1588/</id>
      <content type="html">&lt;p&gt;DailyDogo 1588 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan staring sternly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/d0495a8a61c3f0ad115ed84b4278519a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1588 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1587 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/04/01/dailydogo1587/" />
      <updated>2026-04-01T19:55:03Z</updated>
      <id>https://blog.martin-haehnel.de/2026/04/01/dailydogo1587/</id>
      <content type="html">&lt;p&gt;DailyDogo 1587 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan being walked. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/739d64e761d5289eaea63326cf177c5f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1587 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1586 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/31/dailydogo1586/" />
      <updated>2026-03-31T20:03:57Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/31/dailydogo1586/</id>
      <content type="html">&lt;p&gt;DailyDogo 1586 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through a pretty wet looking forest in which the snow has just melted a week ago or so.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8dfe40ee2e638a0552b18a15ab374ece.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1586 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1585 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/30/dailydogo1585/" />
      <updated>2026-03-30T19:10:27Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/30/dailydogo1585/</id>
      <content type="html">&lt;p&gt;DailyDogo 1585 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan rubbing her back on one of the last patches of snow in a forest.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7896b775aa281f0d61d7c1c6b7275e80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1585 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1584 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/29/dailydogo1584/" />
      <updated>2026-03-29T19:30:42Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/29/dailydogo1584/</id>
      <content type="html">&lt;p&gt;DailyDogo 1584 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching straight into the camera. She seems very excited about opening a cardboard box which is visible in the lower part of the frame.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c32c4ccdd8541de61f4217f42f1659f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1584 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1583 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/28/dailydogo1583/" />
      <updated>2026-03-28T21:52:17Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/28/dailydogo1583/</id>
      <content type="html">&lt;p&gt;DailyDogo 1583 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan starring at an easter basket filled with chocolates. She has her tongue out and looks adorable.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/972c01d625cf070db82ce4c42b470ebb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1583 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1582 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/27/dailydogo1582/" />
      <updated>2026-03-27T21:26:15Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/27/dailydogo1582/</id>
      <content type="html">&lt;p&gt;DailyDogo 1582 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up of a black and white corgi cardigan lying on the floor and looking straight ahead. She is photographed from the side and her gaze goes towards the left of the frame.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c99bfe4b5b56ae5ac896894c61474c93.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1582 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1581 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/26/dailydogo1581/" />
      <updated>2026-03-26T21:03:13Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/26/dailydogo1581/</id>
      <content type="html">&lt;p&gt;DailyDogo 1581 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a window on her back. She looks somehow very theatrical.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d9f302f0cc13d50bea83514f42ad962.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1581 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Journal Entry For 2026-03-25



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/25/journal-entry-for-2026-03-25/" />
      <updated>2026-03-26T20:51:00Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/25/journal-entry-for-2026-03-25/</id>
      <content type="html">&lt;ul&gt;
&lt;li&gt;What a sentence: &amp;quot;The entire AI bubble is built on a vague sense of inevitability — that if everybody just believes hard enough that none of this can ever, ever go wrong that at some point all of the very obvious problems will just go away.&amp;quot; &lt;a href=&quot;https://www.wheresyoured.at/the-ai-industry-is-lying-to-you/?ref=ed-zitrons-wheres-your-ed-at-newsletter&quot;&gt;Ed Zitron&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;I come down on this like this: First and foremost, people gotta eat (and pay for their lower to middle class lives), that includes me, a soon to be Dad. So I will try to not lose my job and learn how to use these tools somewhat effectively as long as this is what is asked of me. When the free money era of this ends - which I think is a quite likely situation as &amp;quot;one cannot beat physics&amp;quot; (Zitron) - I am sure that I will probably do a lot more of this by hand again, soon. Which is fine by me.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Terry Godier, the person behind the RSS app Current &lt;a href=&quot;https://blog.terrygodier.com/2026/03/22/on-ai-and-prior-art.html&quot;&gt;wrote recently&lt;/a&gt; (emphasis mine): &amp;quot;I differ from a lot of longtime engineers in that &lt;strong&gt;I don’t find the act of writing code to be sacred&lt;/strong&gt; or really all that original. &lt;strong&gt;I’ve written code for 25 years and I don’t feel like I’ve owned any of it&lt;/strong&gt;, or that I genuinely invented any of the approaches I’ve taken to solve whatever problem I was building against. The reason I had to write the code in the first place always felt more like a bug than a feature. Some of the things I’ve done felt nice - tricksy logic that accomplishes something that the machine didn’t want to, or the satisfaction of an elegant solution. But those things aren’t why the software exists in the first place. &lt;strong&gt;Where I do feel a sense of ownership and pride is the philosophy.&lt;/strong&gt;&amp;quot;
&lt;ul&gt;
&lt;li&gt;A hundred thousand percent agreed. To me that includes things like how I would ideally like to develop things. There is pride there. But writing code itself is more of a necessity for me. A means to an end. Sometimes then end is something really cool and original like Current. Sometimes the end is the journey (the end doesn&#39;t have to be the finished product is what I&#39;m saying. Sometimes it is about the exploration or a particular concept or whatever)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Journal Entry For 2026-03-25

        https://blog.martin-haehnel.de/2026/03/25/journal-entry-for-2026-03-25/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1580 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/25/dailydogo1580/" />
      <updated>2026-03-25T21:42:46Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/25/dailydogo1580/</id>
      <content type="html">&lt;p&gt;DailyDogo 1580 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan resting both paws on top of a dog toy and smiling into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3574e8a3efcc6680de416b4a021ea213.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1580 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1579 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/24/dailydogo1579/" />
      <updated>2026-03-24T20:47:51Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/24/dailydogo1579/</id>
      <content type="html">&lt;p&gt;DailyDogo 1579 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping on a couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4484c736c21ada9e0c0f1515e13ddd7e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1579 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1578 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/23/dailydogo1578/" />
      <updated>2026-03-23T20:58:50Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/23/dailydogo1578/</id>
      <content type="html">&lt;p&gt;DailyDogo 1578 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping on a couch with her head hanging down from it.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a31e74bc04e353966b71bca590c1213b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1578 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1577 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/22/dailydogo1577/" />
      <updated>2026-03-22T21:15:45Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/22/dailydogo1577/</id>
      <content type="html">&lt;p&gt;DailyDogo 1577 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to her black dragon &amp;amp;quot;friend&amp;amp;quot;: A corgi sized dragon stool kind of thing next to a couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1d264b56de27c754b198eebcac1b976f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1577 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1576 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/21/dailydogo1576/" />
      <updated>2026-03-21T21:11:29Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/21/dailydogo1576/</id>
      <content type="html">&lt;p&gt;DailyDogo 1576 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan scratching her on back by squirming around on a red long haired carpet.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7da5cf9cb5bdebfda6027da625245c6c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1576 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1575 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/21/dailydogo1575/" />
      <updated>2026-03-20T23:33:02Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/21/dailydogo1575/</id>
      <content type="html">&lt;p&gt;DailyDogo 1575 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running around in a dog park.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d6606781f9babbaf9a25a79fa1c10c0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1575 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1574 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/19/dailydogo1574/" />
      <updated>2026-03-19T19:08:37Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/19/dailydogo1574/</id>
      <content type="html">&lt;p&gt;DailyDogo 1574 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching happily into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e9b90ec5615237d814a3e9a6559113b6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1574 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Journal Entry For 2026-03-19



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/" />
      <updated>2026-03-19T17:28:35Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/</id>
      <content type="html">&lt;ul&gt;
&lt;li&gt;Had to update &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/&quot;&gt;yesterday&amp;apos;s post&lt;/a&gt;. So, so many typos and omissions. That is the problem if you try to publish stuff that you just quickly jotted down throughout the day.
&lt;ul&gt;
&lt;li&gt;The idea behind these kinds of posts btw. is to act as an alternative to posting on social media.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;There is an excellent (German) old-school album review site called &lt;a href=&quot;https://www.plattentests.de&quot;&gt;Plattentests.de&lt;/a&gt; that I discovered for myself late last year. It has been going since 1999. And I am very grateful that it is still going. Every album I read about and then try out makes me feel like I am consuming music &amp;quot;the right way&amp;quot;. Highly recommended!&lt;/li&gt;
&lt;li&gt;I notice a strong resistance against nostalgia and wishing the old times back: I try to envision my excursions into owning media, self-hosting things and retreating from context collapsed social media as a new future and not as nostalgia. Yancey Strickler (Kickstarter Cofounder, I happen to follow him not because of that, but because he writes about a more private internet amongst other things) wrote about the particular outrage machine that is X (nee Twitter). &lt;a href=&quot;https://www.ystrickler.com/unscale-the-internet/&quot;&gt;Unscale the internet&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I also notice that my values are more &amp;quot;left-leaning social democratic&amp;quot; than far-left - and maybe always have been (being at times under the spell of more radical notions notwithstanding).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; I notice this in what I read, what I value (f.x. the ability to compromise) and what I despise, &lt;a href=&quot;https://jmkorhonen.wpcomstaging.com/2025/10/30/why-sustainable-civilizations-must-be-democratic/&quot;&gt;what takes I welcome&lt;/a&gt; - if not without skepticism. I like moderation and I fully admit that to me the intellectually most honest stance I can personally take on is one of acceptance of historicity (some would call it &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;fatalist&lt;/a&gt;): Therefore I tend to agree more with Noah Smith - &lt;a href=&quot;https://www.noahpinion.blog/p/save-us-digital-cronkite&quot;&gt;who recently wrote&lt;/a&gt; about &amp;quot;AI&amp;quot; as a medium for moderation (as in finding a middle ground) on social media (What a crazy thing to say?! Time to shout? Or time to think and differentiate?) - than with Tante&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and &lt;a href=&quot;https://tldr.nettime.org/@tante/116250222161691845&quot;&gt;his Master&#39;s Tools argument&lt;/a&gt; - which forgoes the conclusion of &lt;em&gt;if&lt;/em&gt; LLMs are a Master&#39;s tool and also if this is &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html&quot;&gt;a useful lens&lt;/a&gt; (and if so for whom).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/&quot;&gt;Our little baby&lt;/a&gt; is moving in its mom&#39;s belly kind of a lot these days! But at the same time it is totally shy! Whenever I&#39;m called to put my hand on my partner&#39;s belly the movement stops. I am not taking personally. Take all the time you need, little one!&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I think that doesn&#39;t mean that you can&#39;t be weird. It just means that you value social democracy as a way to organize people. But that does not mean I don&#39;t appreciate practicing theory and learning about ideas or whatever. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;[[A Critique Of A Critique (Of LLMs And Technology Critique In General)|Previously.]] &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This master&#39;s tools argument is therefore similar to the &lt;a href=&quot;https://www.baldurbjarnason.com/2025/trusting-your-own-judgement-on-ai/&quot;&gt;&amp;quot;AI is a cognitive hazard&amp;quot; argument&lt;/a&gt;. I am familar with this kind of argument that a certain kind of person trained in the humanities likes to make: the self sealing kind (in German we would call this a &lt;a href=&quot;https://de.wikipedia.org/wiki/Immunisierungsstrategie&quot;&gt;Immunisierungsstrategie&lt;/a&gt; or &amp;quot;strategy of immunisation&amp;quot;). I had said before that I don&#39;t think &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;LLMs are a tabu&lt;/a&gt; - which I guess is to say they probably aren&#39;t master&#39;s tools (i.e. guns, whips, etc.). &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Journal Entry For 2026-03-19

        https://blog.martin-haehnel.de/2026/03/19/journal-entry-for-2026-03-19/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1573 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/18/dailydogo1573/" />
      <updated>2026-03-18T21:13:09Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/18/dailydogo1573/</id>
      <content type="html">&lt;p&gt;DailyDogo 1573 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan with a small towel in her mouth, inviting the photographer to play.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5f208f23a6808297be5c409ac7ce472b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1573 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Journal Entry For 2026-03-18



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/" />
      <updated>2026-03-18T16:36:06Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-03-19 - cleaned this up quite a bit. There were missing things, typos, broken links. Sorry!&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;[Trying out a new &amp;quot;outline style&amp;quot; of journal post.]&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I liked this video: &lt;a href=&quot;https://youtu.be/c0VHypPaVM8?si=BU6dC3XAPrmagHfC&quot;&gt;Jared Henderson: I don&#39;t like what the internet is doing to me.&lt;/a&gt; - it&#39;s about not wanting to take on sponsorships and instead rely on Substack&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; and Patreon. But it also talks about how the algorithmic internet (mostly: social media) is making it so that you have to behave a certain way (in content creation, but also just in general). Made me think about my retreat from anything that is not this blog or my self hosted adventures.&lt;/li&gt;
&lt;li&gt;I have installed a couple more things on my VPS:
&lt;ul&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/FuzzyGrim/Yamtrack&quot;&gt;Yamtrack&lt;/a&gt; to track things I&#39;ve watched (on Jellyfin and beyond)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://miniflux.app&quot;&gt;Miniflux&lt;/a&gt; and &lt;a href=&quot;https://wallabag.org&quot;&gt;Wallabag&lt;/a&gt; - these are meant to maybe replace Readwise Reader&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; which is relatively expensive, whereas spinning them up on my VPS that is already paid for cost me nothing extra.
&lt;ul&gt;
&lt;li&gt;Important for me is that Wallabag&#39;s annotations can find their way into my Obsidian vault, if that doesn&#39;t work as easily as I want it to, then I might pay the premium going forward.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Interesting points about the natural/unnatural distinction as regards to horses (mostly) and bees: &lt;a href=&quot;https://www.eleanorkonik.com/p/on-geldings-and-the-natural-social&quot;&gt;🎓 On Geldings and the &#39;Natural&#39; Social Order of Horses&lt;/a&gt;:
&lt;ul&gt;
&lt;li&gt;»As Alice Roberts argues in Tamed, the distinction between natural and artificial selection is a tricky one:
&lt;ul&gt;
&lt;li&gt;&amp;quot;Describing artificial and natural selection separately is a false distinction. It doesn’t really matter that it’s humans — rather than the physical environment or other species — that are mediating the assortment of individuals into those more or less likely to successfully reproduce. You wouldn’t make this distinction for any other species.&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Roberts uses the example of honeybees selecting for flower traits. Nobody calls that “artificial” selection. But when humans do functionally the same thing — choosing which stallions breed, castrating the rest — it does start to feel “unnatural.” Usually I find myself arguing that domestication is just a particular type of symbiotic relationship... but the natural vs. unnatural distinction is too useful to disregard even if I do genuinely think that humans are “just animals” in some important senses.⁠⁠«&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I continue to enjoy using Jellyfin, I gotta say.&lt;/li&gt;
&lt;li&gt;I continue to (claim to) be too burned out to sit down with a book. I started to read a book for men who are going to be dads soon, but that&#39;s about it when it comes to long-form content. My Kobo is gathering dust.
&lt;ul&gt;
&lt;li&gt;part of that is my excitement for &lt;a href=&quot;https://en.wikipedia.org/wiki/Slay_the_Spire_II&quot;&gt;Slay The Spire 2&lt;/a&gt; - playing it myself and watching Twitch Stream VODs about it&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://leavesubstack.com&quot;&gt;Yuck.&lt;/a&gt; But I also get it: People got to eat. In a real sense as well as a &amp;quot;want to live a normal live&amp;quot; sense. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;[[Talked about this before|RSVP Eleventy]]. I didn&#39;t like FreshRSS - even though it&#39;s PHP and therefore possibly hackable by me - so I switched to Miniflux (written in go I believe). &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Just the fact that I can highlight and annotate from my feedreader directly is already a little bad. But maybe not bad enough for paying ~90€ a year. Do I of all the people have to develop a feed reader/rss client that can handle this - meaning support highlights in feed reader articles directly by syncing them to wallabag automatically in the background? Seems like a hard task. But it&#39;d also be a killer feed reader app... &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Journal Entry For 2026-03-18

        https://blog.martin-haehnel.de/2026/03/18/journal-entry-for-2026-03-18/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1572 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/17/dailydogo1572/" />
      <updated>2026-03-17T21:19:43Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/17/dailydogo1572/</id>
      <content type="html">&lt;p&gt;DailyDogo 1572 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up of a black and white corgi cardigan looking up and at a person next to the photographer.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ea87d097722437be6ce9f4b635b74040.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1572 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I Did Do It



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/17/i-did-do-it/" />
      <updated>2026-03-17T17:10:49Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/17/i-did-do-it/</id>
      <content type="html">&lt;p&gt;As announced &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/&quot;&gt;a while ago&lt;/a&gt;: I just now unplugged the didyoudoit accountability forum and deleted all its data.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/17/i-did-do-it/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Thank you to everyone who tried this thing! I&#39;ll see you around.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I will keep one db backup from yesterday around for another 60 days - so until 2026-05-16. But after that I won&#39;t be able to restore anything. So if for some reason you actually do want to keep something from the old days: Please tell me before then! &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/17/i-did-do-it/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        I Did Do It

        https://blog.martin-haehnel.de/2026/03/17/i-did-do-it/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1571 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/16/dailydogo1571/" />
      <updated>2026-03-16T18:51:15Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/16/dailydogo1571/</id>
      <content type="html">&lt;p&gt;DailyDogo 1571 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back in between a recliner chair and an office chair.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ddba9f28dc1c6994b471d18d466c59f4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1571 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1570 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/16/dailydogo1570/" />
      <updated>2026-03-16T07:40:22Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/16/dailydogo1570/</id>
      <content type="html">&lt;p&gt;DailyDogo 1570 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on a carpet with her tongue out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/72d147118dc157b2fd52f4a0f0d68b11.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1570 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1569 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/14/dailydogo1569/" />
      <updated>2026-03-14T21:52:59Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/14/dailydogo1569/</id>
      <content type="html">&lt;p&gt;DailyDogo 1569 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan jumping up to see if some of the McDonald&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/9242510263ebef668f5b81bd3efda846.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1569 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1568 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/13/dailydogo1568/" />
      <updated>2026-03-13T21:31:54Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/13/dailydogo1568/</id>
      <content type="html">&lt;p&gt;DailyDogo 1568 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a fridge and looking straight up into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3d27c3db774b1b95231adce16ae40a30.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1568 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1567 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/12/dailydogo1567/" />
      <updated>2026-03-12T20:57:05Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/12/dailydogo1567/</id>
      <content type="html">&lt;p&gt;DailyDogo 1567 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping wedged in between a dog toy and the wall.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/266d58b728a32d799603ecd8a0654653.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1567 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1566 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/11/dailydogo1566/" />
      <updated>2026-03-11T21:17:44Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/11/dailydogo1566/</id>
      <content type="html">&lt;p&gt;DailyDogo 1566 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and a bearded man photographed from above. They are giving each other the hand/paw.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/405b6b9bb0fe731597e8647314fc1c80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1566 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1565 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/10/dailydogo1565/" />
      <updated>2026-03-10T20:41:56Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/10/dailydogo1565/</id>
      <content type="html">&lt;p&gt;DailyDogo 1565 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to and with her head under a couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/baee0c417c15004f9a34854092f3e2ae.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1565 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          host.docker.internal On LINUX?! YES



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/10/host-docker-internal-on-linux-yes/" />
      <updated>2026-03-09T22:25:41Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/10/host-docker-internal-on-linux-yes/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-03-10 - Forgot to sync title and permalink for the second time recently. [See also.](RSVP Eleventy)&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I am past my bedtime but I learned something interesting today: Docker on Linux supports the very handy &lt;code&gt;host.docker.internal&lt;/code&gt; since Docker 20.10 as a shorthand to reach ports exposed to the host. This is very nice because the always weird and janky &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt; that I use to self-host my stuff is making sure that different resources are isolated into their own Docker networks (good) but the one way most people seem to recommend is to connect to a shared resource like a database is through exposing the DB to the internet and using the public ip to connect (bad).&lt;/p&gt;
&lt;p&gt;Personally I think that doing a port mapping and then talking over the host mapped port is better. Nobody except for specific applications on the same host (as I only have one VPS) need to connect to my database directly. Earlier you needed to know the &amp;quot;host gateway IP&amp;quot;. No more! Just do something like this in your docker-compose file:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;services&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;myservice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
	 &lt;span class=&quot;token comment&quot;&gt;# ...&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;extra_hosts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;host.docker.internal:host-gateway&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And then if for example you have exposed a shared db to your host you just refer to it like so:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;services&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;myservice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
	 &lt;span class=&quot;token comment&quot;&gt;# ...&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;environment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;DATABASE_URL=postgres://user:pw@host.docker.internal:5432/myservice-db&#39;&lt;/span&gt;
	&lt;span class=&quot;token key atrule&quot;&gt;extra_hosts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
	  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;host.docker.internal:host-gateway&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And in this way you can have a single instance for all your hosted services (like a db as I said or a KV store like redis) and save a bunch of resources.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/questions/31324981/how-to-access-host-port-from-docker-container/61424570#61424570&quot;&gt;Stack Overflow Answer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Interestingly this doesn&#39;t seem to be documented, yet. From another answer I found these two links:
&lt;ul&gt;
&lt;li&gt;https://github.com/docker/for-linux/issues/264#issuecomment-598864064&lt;/li&gt;
&lt;li&gt;https://github.com/moby/moby/pull/40007#issuecomment-578729356&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        host.docker.internal On LINUX?! YES

        https://blog.martin-haehnel.de/2026/03/10/host-docker-internal-on-linux-yes/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1564 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/09/dailydogo1564/" />
      <updated>2026-03-09T21:12:18Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/09/dailydogo1564/</id>
      <content type="html">&lt;p&gt;DailyDogo 1564 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor with her tongue out. Looking kinda derpy (but adorable as always).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ccd41eaf4c574f085bd420e76b1663f5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1564 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1563 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/08/dailydogo1563/" />
      <updated>2026-03-08T17:47:44Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/08/dailydogo1563/</id>
      <content type="html">&lt;p&gt;DailyDogo 1563 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan doing a corgi sploot.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/77b60eceb5cdb3915bd151f00c1d9d8b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1563 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1562 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/08/dailydogo1562/" />
      <updated>2026-03-07T22:02:14Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/08/dailydogo1562/</id>
      <content type="html">&lt;p&gt;DailyDogo 1562 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running around in a wintery dog park.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e57ae2e6946bd79714df1a1b52e150b5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1562 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1561 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/06/dailydogo1561/" />
      <updated>2026-03-06T21:18:03Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/06/dailydogo1561/</id>
      <content type="html">&lt;p&gt;DailyDogo 1561 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed daydreaming.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/edb49b49c3724d2b32b5b1a5dbbd065a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1561 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1560 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/06/dailydogo1560/" />
      <updated>2026-03-05T23:39:49Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/06/dailydogo1560/</id>
      <content type="html">&lt;p&gt;DailyDogo 1560 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to an Ikea manual watching back over her shoulder towards the camera. She almost looks like she is building the rolling metal shelf that is right next to her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/325dc5ae53b128317633cf4e656f1157.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1560 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1559 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/04/dailydogo1559/" />
      <updated>2026-03-04T16:53:40Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/04/dailydogo1559/</id>
      <content type="html">&lt;p&gt;DailyDogo 1559 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing in the deep snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c5f0a43f5465cc88fb5765afcc6b4e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1559 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1558 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/04/dailydogo1558/" />
      <updated>2026-03-04T16:49:59Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/04/dailydogo1558/</id>
      <content type="html">&lt;p&gt;DailyDogo 1558 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan jumping up the photographer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/56a0aef8cf3c54f35b7972989804f37b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1558 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          RSVP Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/04/rsvp-eleventy/" />
      <updated>2026-03-04T08:33:08Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/04/rsvp-eleventy/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-03-04 - After publishing I realized that I hadn&#39;t set the title property correctly, so the permalink and the title weren&#39;t aligned. The title read &amp;quot;Journal Entry For 2026-03-04&amp;quot; not it&#39;s &amp;quot;RSVP Eleventy&amp;quot; as it should be.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://greatestgen.fandom.com/wiki/RSVP&quot;&gt;RSVP instead of RIP is a joke from a podcast I like.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Because of the move, I am not using my 43&amp;quot; screen (!) at this moment. I simply didn&#39;t have the time yet to set it up. And apart from the worse ergonomics, I actually like working on the smaller screen size. I don&#39;t know exactly what it is, but the smaller screen feels more &amp;quot;private&amp;quot; or intimate or maybe more controlled somehow and that feels good to me.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/04/rsvp-eleventy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The static site generator Eleventy is now (soon?) known as &lt;a href=&quot;https://www.kickstarter.com/projects/fontawesome/build-awesome&quot;&gt;&amp;quot;Build Awesome&amp;quot;&lt;/a&gt; which is a terrible, terrible name and seems to suggest a bad trajectory for this project. I share much of &lt;a href=&quot;https://brennan.day/the-end-of-eleventy/&quot;&gt;the thoughts of Brennan Kenneth Brown&lt;/a&gt; on the matter:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I have a feeling the majority of the userbase would not be in support of something like this. Build Awesome looks and feels corporate, pro-capitalist, and commodifies one of the few remaining artistic hobbies that hasn&#39;t been overrun with consumerism and gear-acquisition syndrome.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I get that people have to eat (&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/&quot;&gt;I make this argument&lt;/a&gt; all the time in context of &amp;quot;AI&amp;quot; coding tools), but I don&#39;t need any of the advertised features and reading through the list of stretch goals (ugh) and everything else around this makes me feel depressed. I never understood the motivation to write your own blog engine or ssg, but I might&#39;ve just found a reason to do so...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I use Zola, not 11ty. However, this seems really weird. A company with plenty of resources is running a Kickstarter for a rebrand?&lt;/p&gt;
&lt;p&gt;Or am I missing something?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Couldn&#39;t have said it better than &lt;a href=&quot;https://floss.social/@skysong/116170708847790156&quot;&gt;Ben Overmyer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Speaking of giving up on everything and rebuilding my own (owned) kingdom of crap on my own terms: I am in the middle of researching a homelab as we speak. This will be an expensive purchase (I estimate around 2k) and I will have to use some savings earmarked for other things, but I want to escape the cloud, US-controlled big tech (We have 2 Google Photos Subscriptions and 1 Apple iCloud subscription as we speak) and I would also like to downsize my VPS (which also got more expensive) in exchange for a homelab (a server you run from home). A nice discussion was had under &lt;a href=&quot;https://hachyderm.io/@finn_matti/116171068626184843&quot;&gt;my post&lt;/a&gt; about this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Is it complete and utter madness to run everything[1], including mastodon from a homelab server? I might have to live with the occasional downtime, but maybe that could work? Any reason that&#39;s a bad idea? #homelab #selfhosting&lt;/p&gt;
&lt;p&gt;1: Not literally everything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://gitops-docs.s3.shivering-isles.com/about.html&quot;&gt;This documentation&lt;/a&gt; about a pretty substantial homelab setup is very insightful.&lt;/li&gt;
&lt;li&gt;Somebody pointed me in the direction of &lt;a href=&quot;https://docs.pangolin.net&quot;&gt;Pangolin&lt;/a&gt;, a self-hostable tunneling solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also really liked this post &lt;a href=&quot;https://thedent.net/posts/breaking-up-with-big-tech-progress-update&quot;&gt;Breaking up with Big Tech - Progress update&lt;/a&gt; by Andy Nicolaides.&lt;/p&gt;
&lt;p&gt;On the reading front some unsorted notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I haven&#39;t actually picked up any book in the last ~2 weeks,  because I was so busy and then so burnt out in the evening. (Likely story...)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://social.lol/@gobino/116120509358661233&quot;&gt;This exchange&lt;/a&gt; and my general distaste for rented software these days made me seriously consider moving away from Readwise Reader. I already have &lt;a href=&quot;https://freshrss.org&quot;&gt;FreshRSS&lt;/a&gt; setup, which I use(d) as the test-backend for the new-ish RSS-Reader client Current (which &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/&quot;&gt;I mentioned&lt;/a&gt; the other day). There is also &lt;a href=&quot;https://wallabag.org&quot;&gt;Wallabag&lt;/a&gt; for self-hosted read-it-later functionality and this has not only integration with FreshRSS but also with my Kobo (it seems)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And tomorrow &lt;a href=&quot;https://megacrit.com/news/2026-02-19-release-date-trailer/&quot;&gt;Spire 2&lt;/a&gt; is out. I still can&#39;t freaking believe it.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Also, having now finished my working day working like this, I am not even sure if am more productive using the 43 inch monster... &lt;a href=&quot;https://blog.martin-haehnel.de/2026/03/04/rsvp-eleventy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        RSVP Eleventy

        https://blog.martin-haehnel.de/2026/03/04/rsvp-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1557 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/02/dailydogo1557/" />
      <updated>2026-03-02T21:43:03Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/02/dailydogo1557/</id>
      <content type="html">&lt;p&gt;DailyDogo 1557 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running around in a snowy dog park.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2d1ce5251341562d4ab0a58e6f49810d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1557 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1556 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/01/dailydogo1556/" />
      <updated>2026-03-01T19:57:01Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/01/dailydogo1556/</id>
      <content type="html">&lt;p&gt;DailyDogo 1556 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and a bearded man walking through very deep snow. Only the corgi&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e2338c378bf223a4d2d8585266dd27ef.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1556 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1555 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/01/dailydogo1555/" />
      <updated>2026-03-01T19:42:08Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/01/dailydogo1555/</id>
      <content type="html">&lt;p&gt;DailyDogo 1555 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on an empty balcony, overlooking a wintery landscape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/dc8676dd52678a22d6978f40ea335023.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1555 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1554 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/01/dailydogo1554/" />
      <updated>2026-03-01T19:40:28Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/01/dailydogo1554/</id>
      <content type="html">&lt;p&gt;DailyDogo 1554 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through a snowy landscape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/bc4a40e4a60eeb79ef78b8fe774905b1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1554 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1553 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/03/01/dailydogo1553/" />
      <updated>2026-03-01T19:38:05Z</updated>
      <id>https://blog.martin-haehnel.de/2026/03/01/dailydogo1553/</id>
      <content type="html">&lt;p&gt;DailyDogo 1553 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to the balcony door. A bunch of moving boxes are visible in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/738b99ef816897118c661054761ca91d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1553 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1552 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/25/dailydogo1552/" />
      <updated>2026-02-25T20:26:50Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/25/dailydogo1552/</id>
      <content type="html">&lt;p&gt;DailyDogo 1552 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the middle of a bunch of red moving boxes. Watching carefully the apartment door.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/85ddd56ef855cedd7356712313e00005.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1552 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1551 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/24/dailydogo1551/" />
      <updated>2026-02-24T19:40:41Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/24/dailydogo1551/</id>
      <content type="html">&lt;p&gt;DailyDogo 1551 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the snow in a somewhat urban winter landscape. Her face is also full of snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/91c92fc69a8a3cd25e782af4e080af0f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1551 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1550 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/23/dailydogo1550/" />
      <updated>2026-02-23T19:52:07Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/23/dailydogo1550/</id>
      <content type="html">&lt;p&gt;DailyDogo 1550 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in front of moving boxes and looking up.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e5e3c569f4a27b2c94c71a9ea726ef4c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1550 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Moving Prep



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/23/moving-prep/" />
      <updated>2026-02-23T11:50:51Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/23/moving-prep/</id>
      <content type="html">&lt;p&gt;Talked today in a meeting at work about my concerns of burning tokens - at least partly also for environmental reasons. People nodded along, felt good.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dansinker.com/posts/2026-02-22-act-of-resistence/&quot;&gt;This is just a beautiful beautiful blog post&lt;/a&gt; about radical joy as an act of resistance. As you may &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/&quot;&gt;guess&lt;/a&gt; I am not one to hold out much hope for radical change, but it is still emotionally resonant to me, even if I believe that reconfiguring a system is mostly hard work that takes time (and you might not be even able to change the important bits from where you are). Nonetheless: Joy doesn&#39;t hurt and there is some romanticism in this otherwise cold heart of mine left for the idea that we can solve things by having fun. And even if that&#39;s not true (on its own) it&#39;s not a useless illusion either.&lt;/p&gt;
&lt;p&gt;Of course I&#39;m getting ill right when the move is starting. Stuffed nose, sore throat. Let&#39;s see how I feel tomorrow. We (I) also underestimated the amount of boxes that need to be moved. We (I) thought 60, I now think it&#39;s closer to 80 or even a hundred. Have to check it tomorrow, but we&#39;ll write the moving company. Let&#39;s hope it&#39;s fine... Our corgi Napu is having reservations of us moving stuff into boxes and bags. She&#39;ll be fine and hopefully love the new apartment.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Moving Prep

        https://blog.martin-haehnel.de/2026/02/23/moving-prep/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1549 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/22/dailydogo1549/" />
      <updated>2026-02-22T20:32:08Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/22/dailydogo1549/</id>
      <content type="html">&lt;p&gt;DailyDogo 1549 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the middle of a bunch of dog toys and eating a treat.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ffaa018bc4ba8ebf56ad1066f9f078ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1549 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1548 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/22/dailydogo1548/" />
      <updated>2026-02-21T23:34:43Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/22/dailydogo1548/</id>
      <content type="html">&lt;p&gt;DailyDogo 1548 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and white borzoi - a long legged and very slim breed - are playing together in a snowy dog park.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/caa463ab8db6b3563d1cae6506887347.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1548 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Some Clarifications On Yesterday&#39;s Critique Of Critique



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/" />
      <updated>2026-02-21T13:48:04Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/</id>
      <content type="html">&lt;p&gt;[I&#39;ll get back to more down to earth topics soon, I swear.]&lt;/p&gt;
&lt;p&gt;I am still thinking about &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/&quot;&gt;yesterday&amp;apos;s post&lt;/a&gt;. I feel a little off after having written it, because it trades in some optimism for &lt;s&gt;fatalism&lt;/s&gt; realism as regards to what theory can and can&#39;t do. It seems a little strange - in the sense that I feel that I stand out in a precarious way, as not many seem to share my sentiment - that this seems to be the bridge I have to go over, if I want to stay grounded. As I am interested in what can be done better within what we have (an is-focused approach) as opposed to the grand but ultimately toothless pursuit of what should be (an ought-focused approach), I seem to have to state clearly that I do not really believe in big and (possibly) sudden changes on any but especially a grand scale. I guess that makes me an incrementalist?&lt;/p&gt;
&lt;p&gt;The article I talked about yesterday had somewhat of an aftermath, the one post that stood out to me from this was a short thread by Prof. Emily Bender (which also co-wrote &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/&quot;&gt;The AI Con&lt;/a&gt;). Here&#39;s &lt;a href=&quot;https://dair-community.social/@emilymbender/116109624758922712&quot;&gt;one post out of the thread&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It was particularly disappointing to see Doctorow misconstrue (and thus, if he is believed) undermine the work that many of us are doing to shine a light on the ways in which the ideology of &amp;quot;AI&amp;quot; and the specific ways in which LLMs and other &amp;quot;AI&amp;quot; products are created do real harm.[...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think there is some truth to that in the sense that Doctorow is a public figure with a large following and in the circles of technology writing and socio-technical research I can see that saying something like &amp;quot;I don&#39;t believe in what AI&#39;s critics have to sell and their purity culture.&amp;quot; is somewhat problematic as it might lend a hand to dismissals of valuable hard-won knowledge. However, that means that my stance &amp;quot;I don&#39;t believe in purity based argumentation and in grand-transformational theory practice&amp;quot; as regards to AI criticism has also to answer to that as well.&lt;/p&gt;
&lt;p&gt;I think that maybe surprisingly I welcome and appreciate and support the socio-technological work that makes visible all the invisible actors that make up &amp;quot;AI&amp;quot; or even &amp;quot;LLMs&amp;quot;. All the harms, all the marketing BS all the inherent problems of this technology. I think this work is important no matter where you fall on the is-focused/out-focused divide. It is important because it problematizes not only what &amp;quot;AI&amp;quot; is, but also what can be done about it, realistically. I came away from the &amp;quot;AI Con&amp;quot; book with a feeling of &amp;quot;you, as an individual can&#39;t do a lot&amp;quot;. You can witness what&#39;s happening and form an informed opinion, but in the end this is a question of regulation and reigning in Big Tech.&lt;/p&gt;
&lt;p&gt;So personally, I would not claim that this ground work of for example debunking news stories, spreading research, write in an accessible way about the technology to make it more understandable to the public is not a very good and important thing. It totally is. Full stop.&lt;/p&gt;
&lt;p&gt;Where I diverge is in the scope of what such work can do in the world. To me, what follows from Bender&#39;s (et. al.) talks, books, podcasts, etc. is not a planet-wide rejection of &amp;quot;AI&amp;quot;, that is not something that theory (or academic writing) can feasibly do. Instead, it maybe helps to understand the fucked-upness of the situation and that any pointers theory can give is in the place beyond its acceptance as another wart that is now part of what makes society tick.&lt;/p&gt;
&lt;p&gt;One more thing: I said in the end of my post that we are basically incapable of doing anything, because we are made by society. I&#39;m tapping into a theory tradition that sees individual perceptions of agency as artifacts of their limited perspective. This perspective has had a few different interpretations, but it generally prefers structure and historicity over - especially essentialist - arguments of agency. I am of the opinion that Latour got it right, that we are our networks and prescribing any agency that can&#39;t be located within this network of actors is akin to invoking magic (not his exact words of course). So agency is not just a given (and therefore invoking people&#39;s agency to change the world is not a satisfactory theoretical position). That&#39;s what I meant.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Nobody asked me to clarify, but I thought it&#39;s worth doing. Since I am invoking Latour it is important to point out that Latour tries really hard to move away from structure and any kind of macro level itself. But nonetheless: Agency is an effect or result, not the starting point. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Some Clarifications On Yesterday&#39;s Critique Of Critique

        https://blog.martin-haehnel.de/2026/02/21/some-clarifications-on-yesterdays-critique-of-critique/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1547 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/21/dailydogo1547/" />
      <updated>2026-02-20T22:00:36Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/21/dailydogo1547/</id>
      <content type="html">&lt;p&gt;DailyDogo 1547 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in a dark corner of the room. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6b04221c93d54eed8c11217aa1420253.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1547 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Critique Of A Critique (Of LLMs And Technology Critique In General)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/" />
      <updated>2026-02-20T20:53:31Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://tante.cc/2026/02/20/acting-ethical-in-an-imperfect-world/&quot;&gt;Kind of interesting critique&lt;/a&gt; of (part of) one of &lt;a href=&quot;https://pluralistic.net/2026/02/19/now-we-are-six/&quot;&gt;Cory Doctorow&#39;s posts&lt;/a&gt; as regards to LLM haters: &lt;a href=&quot;https://tante.cc/2026/02/20/acting-ethical-in-an-imperfect-world/&quot;&gt;Acting ethically in an imperfect world&lt;/a&gt;. I was initially interested in it, because Doctorow made an argument against &amp;quot;purity culture&amp;quot;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Purity culture is such an obvious trap, an artifact of the neoliberal ideology that insists that the solution to all our problems is to shop very carefully, thus reducing all politics to personal consumption choices:&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;I mean, it was extraordinarily stupid for the Nazis to refuse Einstein&#39;s work because it was &amp;quot;Jewish science,&amp;quot; but not merely because antisemitism is stupid. It was also a major self-limiting move because Einstein was right:&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;Refusing to run an LLM on your laptop because you don&#39;t like Sam Altman is as foolish as refusing to get monoclonal antibodies because James Watson was a racist nutjob[.]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The critique is - I think - trying to say that what maybe appears as purity to some is pointed critique about particulars to others.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The strawman is his claim that people who criticize LLM usage are doing that for some form of absolutist reasons. That they have a fully binary view of the world as separated into “acceptable, pure things” and “garbage”. Which is of course false. [...] He attacks a ridiculous made-up figure to deflect from specific criticism of LLM use (that many probably wouldn’t even apply that strongly to his use case). But that’s not where criticism of LLMs comes from: It’s mostly specific focussing on the material properties of these systems, their production and use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The critique ends somewhat perplexingly like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I do agree with Cory that demanding perfect purity lead nowhere. We are imperfect people in an imperfect world. I just do not think that this means to go all accellerationalist. Just turning the “open source” dial up to 11 does not stop the apocalypse. It’s a lot harder.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So I guess everyone agrees that &amp;quot;purity culture&amp;quot; doesn&#39;t make any sense. Me too. And I personally agree with the author against Doctorow that just &amp;quot;liberating tech&amp;quot; (which to me isn&#39;t as big a stretch as is implied here, but I&#39;m a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Latourian&lt;/a&gt;...) can&#39;t be the end goal either. However, I am a useless &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;fatalist&lt;/a&gt; when it comes to these things and I don&#39;t see &lt;em&gt;any realistic chance&lt;/em&gt; to his project &amp;quot;an Internet and a world that is more inclusive, fairer, freer&amp;quot; through technology critique (which I presume this post is in service of).&lt;/p&gt;
&lt;p&gt;In my humble opinion the point of technology critique is socio-technological theory-practice. It is a pretext to rewrite (and therefore reinvent) the world through changing perceptions. I liked that point from &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/&quot;&gt;an article I recently linked&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What’s true in the world of fashion is also true in the world of ideas. Being ignorant of the forces shaping society does not exempt you from their influence—it places you at their mercy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Similarly, a good technology critique can make people reevaluate their world and their relationship to it. Cool. Awesome. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/&quot;&gt;In somewhat of a follow-up to the just quoted post&lt;/a&gt; I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[...] I think a lot more people will be at the mercy of the few literate people that are in power or employed by power. I imagine there will be other literate people, too. Some more some less literate, so I agree that not all of us will lose the hunger for learning/reading/writing/thinking/argueing. But these pockets of literacy in an otherwise post-literate world will probably not do a lot to safe democracy/science/humanities. Sure, us few can enjoy books (even &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/&quot;&gt;novels&lt;/a&gt;), but it might not move the needle in public discourse. And I think here is where I do see a darker future than Mastroianni [the author of the article I am discussing here] who seems to be happy with the fact that his small community of readers is literate and that the decline is just moderate (so far).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Similar things could be said about the technology critique hopefuls. Cool if you have community or a readership (that may even appear large to you) that believes in the transformative power of the written word. But it is also kind of an echo chamber and a self-selecting, somewhat privileged circle.&lt;/p&gt;
&lt;p&gt;If people&#39;s lives hang in the balance - even comparatively well-off people like software developers in the west - for example, if people might lose their jobs, most people will try to preserve themselves and the world they live in. People have houses, kids, pets and hobbies and whatnot.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; It is basically unthinkable for most people to give up on what they are accustomed to for ethical reasons alone. Sure, sometimes a decision is easier to make if you happen to live under the right circumstances. It&#39;s easier to criticize LLM use in professional software development - and refuse to use it yourself - if you yourself are a retired software engineer. &lt;a href=&quot;https://ronjeffries.com/articles/-v026/z/t/&quot;&gt;Ron Jeffries expressed this recently&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One response to the above [a critique of LLMs], even if one believes it, might well be to feather one’s own nest as best one can, learning to use and guide the “AI”, so as to preserve one’s position as long as possible. I can see that and understand it. It’s not what I’d call morally great, but it’s not horribly corrupt either, in my book. When faced with no good choices, we sensibly choose the least bad.&lt;/p&gt;
&lt;p&gt;I am fortunate to be retired and no longer dependent on software to eat. And my best wishes go to those who are, and my honest acceptance of the choices they make in this new situation. I think LLMs are not a good thing for us and we need to find ways to live with them as well as we can.&lt;/p&gt;
&lt;p&gt;So, bless you, bless us all, and good luck!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So that probably means that most people &lt;em&gt;will&lt;/em&gt; be making amends to using LLMs as coding tools, therefore normalizing it (&amp;quot;If I use it for this, using it for this other thing doesn&#39;t really move the needle either...&amp;quot;). Same goes for almost anyone everywhere else you look.&lt;/p&gt;
&lt;p&gt;I read &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/&quot;&gt;The AI Con&lt;/a&gt; and was basically thinking &amp;quot;Now What?&amp;quot; after I was finished. Most AI critique reads completely disconnected from this context problem: People may seek out technology critique and maybe even want to change the world they live in in some way, but most won&#39;t overcome the gravity of their own lives. That is why I think a pointed critique even if argued logically, does nothing for most people.&lt;/p&gt;
&lt;p&gt;The only hope I have is in &amp;quot;many much more smaller steps&amp;quot;, as GeePaw Hill would say. I&#39;ll contrast something from that critique with an idea I shared yesterday. Here&#39;s what the author seems to think is a reasonable approach:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“I know there are many critiques of LLMs, but right now that is the best way for me to enable my work, I try to limit the problematic aspects by using a small open weight model and checking the results in detail.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And here&#39;s is &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/&quot;&gt;what I said&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;We simply can&#39;t just run a &amp;quot;Gas Town&amp;quot; equivalent for every developer. We are still living in the &amp;quot;free money&amp;quot; era of LLMs as coding tools, but it ain&#39;t staying that way. Of course, taking the human out of the loop will almost certainly lead to code churn and in the worst of the cases disaster down the road. Therefore the plan should be to build something that can work without the use of LLM agents (like Codex) and with a human in the loop guiding the system. This tends to be more token efficient and is of course (more) deterministic than just simply letting a group of agents with different roles working on the same code at the same time with only light supervision.&amp;quot;&lt;/p&gt;
&lt;p&gt;This seems to work because it doesn&#39;t talk about things like the environment or social problems it talks about token amounts (money) and code quality (money). But less tokens certainly also means less strain on the planet. Doing it indirectly is less of a red cloth.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To be fair: The author is talking about fixing typos and grammar mistakes and not using a coding agent. And if we just talk about typos I guess a small model with open weights might as well work. However, this is very unrealistic for most people&#39;s lived experiences that have contact with the AI world. I don&#39;t claim to have taken polls on this, but following the discourse it seems to me that most people deal with one of the bigger AI companies and not some locally run open weight model. So what I suggest is to use these models in ways - within our current context - that are less harmful. These are minuscule changes. I don&#39;t claim to reinvent peoples worlds or the whole internet, but I do claim that talking about token use in a company that wants their workers to use coding agents is probably a good thing for more than just the economics of the company.&lt;/p&gt;
&lt;p&gt;Bringing it back to purity culture vs. pointed critique: Some things appear one way or another depending on context. In its abstract form it&#39;s hard to find any merit in purity based argumentation. What appears as purity culture is at least in part contextual. It&#39;s contextual in the sense that saying &amp;quot;Sam Altman is a scam artist and habitual liar, but that’s not one of the first 10 to 20 reasons people criticise OpenAI’s products.&amp;quot; can appear as a critique on OpenAI without the implication that using OpenAI&#39;s products is therefore out of the question. But it can also very much seem to imply this depending on how and in what context somebody is reading such a sentence. It might be a comment under a Mastodon post written by somebody else that changes the frame. Who knows?! So critique&#39;s mercurial status is at times at odds with its mission: To open up and reinvent the world through changing perceptions.&lt;/p&gt;
&lt;p&gt;Furthermore, people tend to be unable to escape the gravity wells of their own lives. That is a double-edged sword: Some of us few lucky ones who seem to muster the energy to engage in these kinds of issues are living weirdly privileged lives. I don&#39;t agree with Doctorow or Tante (the author of the critique), but in a way we are taking part in the same discourse, which is cool and intellectually nourishing. It just doesn&#39;t really do anything in the greater world. We live on islands of ignorance if we believe we matter (including Doctorow, I believe). Saying this probably makes me a heretic.&lt;/p&gt;
&lt;p&gt;On the other side (edge?) of this sword is the fact that it is supremely contextual if we are privileged enough to actually go with our values and make decisions based on them. Even people who are well-off rarely do this. Because they (we) are so caught up with our worlds that our intellectual selves seldom get to actually decide freely, rationally, &amp;quot;right&amp;quot;™.&lt;/p&gt;
&lt;p&gt;What can be done is a small (no, smaller!) step in the right direction. By starting with yourself and your situation in the world you are already living in. If your realize you have lots of room to move, ask yourself why it is so easy for you and not for others. Finding small things in your world to improve is the name of the game. Stop dreaming of shaping emergent properties of systems that in actuality have produced you.&lt;/p&gt;
&lt;p&gt;I think Doctorow, Tante and me we all oppose purism, we just all diverge on what follows from this: Doctorow seems to think reappropriating technology is enough, Tante believes in critique and I don&#39;t believe in either. I think we are shaped more by society and its structures, the systems that shaped and still shape us. If we are able to change anything it&#39;s incremental, minuscule and less grandiose than what these thinkers seem to believe.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you don&#39;t know: I made a similar argument and called the concept &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/&quot;&gt;Purity Based Argumentation&lt;/a&gt;  for example in my article &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;Vulnerable Thoughts Around LLMS and generative AI&lt;/a&gt;: &amp;quot;In theory I feel that keeping myself morally untouchable and staying &amp;quot;pure&amp;quot; is interesting, but just as I tried to express &lt;a href=&quot;https://blog.martin-haehnel.de/stubs/&quot;&gt;when I was talking about manifestos&lt;/a&gt; and their harsh delineation between good and bad according to a standard they define without outlining the practical steps to make this a reality, I find myself reaching for the same here: Purity is theoretically interesting, but practically life happens elsewhere and so it is more a question of degree, if anything.&amp;quot; &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Not to speak of things and people that take care of outside their family and friends. Etc. pp. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        A Critique Of A Critique (Of LLMs And Technology Critique In General)

        https://blog.martin-haehnel.de/2026/02/20/a-critique-of-a-critique-of-llms-and-technology-critique-in-general/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1546 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/19/dailydogo1546/" />
      <updated>2026-02-19T20:59:15Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/19/dailydogo1546/</id>
      <content type="html">&lt;p&gt;DailyDogo 1546 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running on a snowy path towards the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ff4f8158f811acab0819e3707b071ccc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1546 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Moderate LLM Enthusiasm At Work



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/" />
      <updated>2026-02-19T07:49:53Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/</id>
      <content type="html">&lt;p&gt;&amp;quot;Are we in the middle of jumping the shark?&amp;quot; is what I am thinking while this Video plays in the background at work: &lt;a href=&quot;https://www.youtube.com/watch?v=Y09u_S3w2c8&quot;&gt;Claude Code Explained in 39 Minutes - YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But I have found a new way to talk about this in context of my company&#39;s size and resources: &amp;quot;We simply can&#39;t just run a &amp;quot;Gas Town&amp;quot; equivalent for every developer. We are still living in the &amp;quot;free money&amp;quot; era of LLMs as coding tools, but it ain&#39;t staying that way. Of course, taking the human out of the loop will almost certainly lead to code churn and in the worst of the cases disaster down the road. Therefore the plan should be to build something that can work without the use of LLM agents (like Codex) and with a human in the loop guiding the system. This tends to be more token efficient and is of course (more) deterministic than just simply letting a group of agents with different roles working on the same code at the same time with only light supervision.&amp;quot;&lt;/p&gt;
&lt;p&gt;This seems to work because it doesn&#39;t talk about things like the environment or social problems it talks about token amounts (money) and code quality (money). But less tokens certainly also means less strain on the planet. Doing it indirectly is less of a red cloth.&lt;/p&gt;
&lt;p&gt;As with all tools there is a learning curve and a price. Certain approaches - like using MCP-servers are falling out of style, because they are less efficient than just giving agents full permissions and let them use cli tools directly (&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/&quot;&gt;like I did yesterday with Playwright&lt;/a&gt;). But MCP-servers tend to be more secure - if certainly not fail-proof, but still - then just pointing an agent at a cli tool. I think that looking at the state of things right now, that having a human in the loop and working towards a mixture of planning/clarifying/exploring solutions (&lt;a href=&quot;https://stackoverflow.com/questions/4047335/tracer-bullets-vs-prototypes&quot;&gt;tracer bullet or prototype style&lt;/a&gt;) and iterate on the solution and incorporate refactoring and tests.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; This tends to make us quicker in some things that get measured and ensures at least some contact with the code which is absolutely vital, especially when the free money ends, which it inevitably will.&lt;/p&gt;
&lt;p&gt;What I don&#39;t see, is &lt;em&gt;any&lt;/em&gt; kind of resistance about this &amp;quot;from above&amp;quot;. And I honestly also don&#39;t see why they would resist this stuff. It is a survival fight on all fronts it seems. Since it&#39;s not only workers losing their jobs but also companies having to survive in an increasingly competitive market. And if that is the case, I think it is less surprising to see people, good people even, wanting to learn using this tech in an attempt to stay employable. The fact that it actually does do something, opposed to what is still often claimed, makes it likely that adoption will just continue to rise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/&quot;&gt;I linked the other day to an angry post&lt;/a&gt; blaming people &amp;quot;in front of them&amp;quot; for having to use LLMs and I said back then:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I suspect we&#39;ll see more things like this, because people need to eat, people need to feed their kids and people with years and decades of experience in the industry can&#39;t simply get a job in other industries (and in all likelihood wouldn&#39;t get the salaries that they are accustomed to that pay for the houses these people live in and so forth).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here&#39;s another one (in two parts):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://aredridel.dinhe.net/2026/02/12/the-ai-haters-guide-to-code-with-llms/&quot;&gt;The AI hater&#39;s guide to code with LLMs (The Overview)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://aredridel.dinhe.net/2026/02/15/an-ai-haters-guide-to-code-with-llms-the-how-to/&quot;&gt;An AI haters guide to code with LLMs (The How-to)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A quote from the overview that frames this pretty nicely (and these are good articles, too!):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Overall, I still believe that LLMs are a net negative on humanity, that the destruction of our infosphere is going to have generational consequences, and that if the whole thing disappeared from the face of the earth tomorrow, I wouldn’t be sad. The damage is would still be out there, but the cheapness of bullshit pervading everything would at least resume being human content mill scale. Not to say that that was good before LLMs came along and made it this bad, but it was better.
That said, that’s not going to happen, and the amount of effort required to make it happen would be much better spent on organizing labor and climate action.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other news:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/&quot;&gt;Dad&lt;/a&gt;news: Thinking of names is hard! There seems to be always someone that you don&#39;t like with (almost) every name you can come up with.&lt;/li&gt;
&lt;li&gt;Dognews:&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Not necessarily in &lt;em&gt;that&lt;/em&gt; order or all of these steps only once. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Moderate LLM Enthusiasm At Work

        https://blog.martin-haehnel.de/2026/02/19/how-to-moderate-llm-enthusiasm-at-work/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1545 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/18/dailydogo1545/" />
      <updated>2026-02-18T18:23:13Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/18/dailydogo1545/</id>
      <content type="html">&lt;p&gt;DailyDogo 1545 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in front of the TV, next to a dog toy. Her head is slightly bowed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/62fa398506eb7d5e12843f1eb76756de.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1545 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1544 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/18/dailydogo1544/" />
      <updated>2026-02-18T08:07:40Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/18/dailydogo1544/</id>
      <content type="html">&lt;p&gt;DailyDogo 1544 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor and looking somewhat like a furry puddle. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/ec84917ffad8f0393ef9f0347e05833e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1544 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I Am Going To Be A Dad



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/" />
      <updated>2026-02-18T07:55:42Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-02-18 - Fixed typos and broken links.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Today we went to the structural ultrasound and with that I am going to reveal that &lt;strong&gt;I am going to be a dad&lt;/strong&gt;! How awesome is that? I had allured to it &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/&quot;&gt;here&lt;/a&gt;. Now that cat is out of the bag (although the baby is still inside the womb). Regardless: It is very awesome. I probably have more the share about this (ha!), but there it is: I am going to be a dad.&lt;/p&gt;
&lt;p&gt;I also have an insanely long list of interesting sounding articles in my read-it-later app (Readwise Reader). Just today I added:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://brennan.day/the-many-wonders-of-being-a-late-bloomer/?__readwiseLocation=&quot;&gt;The Many Wonders of Being a Late Bloomer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nvie.com/posts/15-years-later/?__readwiseLocation=&quot;&gt;15+ years later, Microsoft morged my diagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ayeks.de/posts/2025-10-08-workslop/?__readwiseLocation=&quot;&gt;On AI-generated workslop is destroying productivity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.terrygodier.com/phantom-obligation?__readwiseLocation=&quot;&gt;PHANTOM OBLIGATION&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last one came from the same person that made an app that people seem to like in concept (&lt;a href=&quot;https://social.lol/@superdavey/116090842912452261&quot;&gt;if not in execution, yet&lt;/a&gt;) called &lt;a href=&quot;https://www.terrygodier.com/current&quot;&gt;Current&lt;/a&gt;. It&#39;s an RSS reader without unread counts. Which makes it similar to the new &lt;a href=&quot;https://reeder.app&quot;&gt;Reeder&lt;/a&gt; and &lt;a href=&quot;https://tapestry.iconfactory.com&quot;&gt;Tapestry&lt;/a&gt; (somewhat). I guess.&lt;/p&gt;
&lt;p&gt;None of these articles have been read yet. I have only half read the second post (that screenshot of that botched diagram is insane), but that&#39;s it.&lt;/p&gt;
&lt;p&gt;Anyway.&lt;/p&gt;
&lt;p&gt;Our car - &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/&quot;&gt;it was in need of repairs&lt;/a&gt; -  is ready for pick up. So I&#39;ll do that tomorrow.&lt;/p&gt;
&lt;p&gt;At work I was experimenting a little with using &lt;a href=&quot;https://playwright.dev&quot;&gt;playwright&lt;/a&gt; while using Codex (and the 1Password cli) to see if it could be used to test if a feature toggle in an authenticated flow works or not. It was kind of painfully slow and fiddly. Another thing that is not ready to be used with LLMs (yet?)&lt;/p&gt;
&lt;p&gt;Didn&#39;t post a daily dogo yesterday. Sorry about that. I wonder how Napu will react to the Baby when it&#39;s out (is that how you refer to that?!...?).&lt;/p&gt;
&lt;p&gt;I can&#39;t believe that we&#39;ll move next week already! And I couldn&#39;t be happier that we ordered a moving company to help us. Let&#39;s hope 1.5 days of packing will be enough.&lt;/p&gt;
&lt;p&gt;P.S.: Feeling slightly anxious about titling the post &amp;quot;I Am Going To Be A Dad&amp;quot;. Let&#39;s hope everything works out.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I Am Going To Be A Dad

        https://blog.martin-haehnel.de/2026/02/18/i-am-going-to-be-a-dad/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Full Catastrophe



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/" />
      <updated>2026-02-16T20:55:07Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-02-16 - Fixed a couple of typos, added a tag, straightened out some language.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Just brought the car to the repair service. We managed to scrape the column that is next to our parking spot in the parking hall twice (once me, once my partner). So we basically had to bring the car for the same damage to the same repair service in the span of a year.&lt;/p&gt;
&lt;p&gt;Two things I struggle with when blogging at the moment:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Naming: I am unsure how to name/title journal entries! I guess the naming should be done at the end, before publishing so that journal entries mean something and maybe also entice to read a little more than &amp;quot;Journal Entry For 2026-02-16&amp;quot; which is the name of this post at this moment.&lt;/li&gt;
&lt;li&gt;Images: I want and also don&#39;t want to add images all the time to these posts. But it just takes too much time. So I don&#39;t. But then I think: It&#39;d be nice... But then I also think: Some weird picture is showing up as the image of the post on Mastodon. So for now I try to not post pictures and keep it no-frills (images count as frills).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Being back at home and working from here is nice. There is a certain coziness to the tightly-knitted madness that is my life. The combination of dog walking, chores, my job and making sure I get enough sleep can feel like a pretty busy juggling act at times. But coming back from the trip yesterday makes me realize that I like my life, even if it is &amp;quot;a lot&amp;quot; at times.&lt;/p&gt;
&lt;p&gt;It made me think of the concept of &amp;quot;Full Catastrohe Living&amp;quot;. I will quote from &lt;a href=&quot;https://en.wikipedia.org/wiki/Full_Catastrophe_Living&quot;&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The title Full Catastrophe Living is derived from the film Zorba the Greek, in which the title character says, in response to being asked whether he has ever married, &amp;quot;Am I not a man? Of course I&#39;ve been married. Wife, house, kids ... the full catastrophe&amp;quot;.  According to Kabat-Zinn:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Zorba&#39;s response embodies a supreme appreciation for the richness of life and the inevitability of all its dilemmas, sorrows, traumas, tragedies, and ironies. His way is to &amp;quot;dance&amp;quot; in the gale of the full catastrophe, to celebrate life, to laugh with it and at himself, even in the face of personal failure and defeat. In doing so, he is never weighed down for long, never ultimately defeated either by the world or by his own considerable folly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;And in my best days, I view my life like this as well.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;There are reasons, which I alluded to in my &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/&quot;&gt;2025 - Year In Review&lt;/a&gt; post and I can&#39;t (won&#39;t) still talk about it openly, yet, that makes this an even more an important concept to me. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        The Full Catastrophe

        https://blog.martin-haehnel.de/2026/02/16/the-full-catastrophe/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1543 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/16/dailydogo1543/" />
      <updated>2026-02-16T20:52:41Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/16/dailydogo1543/</id>
      <content type="html">&lt;p&gt;DailyDogo 1543 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back on the floor in the corner of the room. She is watching into the camera with her head kind of twisted to the side.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/8da1484c447ad49980d1d3eca2c50d48.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1543 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Journaling? In this Economy?



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/" />
      <updated>2026-02-15T14:39:20Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/</id>
      <content type="html">&lt;p&gt;[I thought I&#39;d try write a post that is a little more journal style this time around. I noticed that I have become a little too focussed on writing posts with a point, although I actually enjoy reading posts that just let us follow along with someone&#39;s day more. I assume that&#39;s why I like &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/&quot;&gt;WhileDo&lt;/a&gt; posts as much as I do. But the WhileDo is more focussed on talking about programming while programming. The journal blog post is maybe the more generalized version of that. Writing about life while you live it.]&lt;/p&gt;
&lt;p&gt;I just came back from a work trip. The small company I&#39;m working for tries to get everyone together once or twice a year and so after skipping the last two years for various reasons I was able to make it this time. As I am the one who lives furthest away - Oulu (Finland) to Freiburg (Germany) is about 2200 km - it took quite some time and effort to make it happen. The trip lasted from Wednesday to Sunday: I stepped on a plane in Oulu, went on another plane in Helsinki and in Frankfurt I took a train to Freiburg - and then the same thing back on Saturday (I arrived around 1:30 am Oulu local time).&lt;/p&gt;
&lt;p&gt;On Thursday I had a whole day to work in the office, which is always kind of fun: As somebody who works from home otherwise, the contrast is stark: Just as you&#39;d imagine some things are easier to do - give (or receive) help, have a little bit of a fuller picture of the people that you work with and being able to observe how others are interacting with each other (which in 1 on 1 calls is harder to gauge) - it also made it obvious though what I like about working from a distance: I am an introverted man and the way I tend to engage with the world is through sincerity and authenticity. This is generally a good thing: I tend to say what I mean and I am not one to say things just to say them. I am also, as I said, pretty introverted though - which I know from experience always comes as a surprise to people as I am pretty outspoken in a context that is maybe a little more structured or about something than just in a supposedly lower stakes social setting. And that means my energy to engage in all the BS that social life offers is extremely draining to me.&lt;/p&gt;
&lt;p&gt;This was especially apparent again on Friday. I was part of a group of people presenting about working with LLMs: In this case how I use &lt;a href=&quot;https://developers.openai.com/codex/skills&quot;&gt;Codex with skills&lt;/a&gt;, where I felt like I had something to contribute and say&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;. One point I really tried to make: If it is true that we can generate code quicker than we can write it, that doesn&#39;t mean that this generated code is somehow also better (or better understood) and that depending on your &amp;quot;altitude&amp;quot; of looking at it, it may or may not be true that we finish the ticket in front of us quicker (maybe even below estimated time), but probably at the cost of more code churn (i.e. more bug tickets down the road).&lt;/p&gt;
&lt;p&gt;I had a couple of interesting conversations around this topic of code quality in times of our industry&#39;s infatuation with &amp;quot;AI&amp;quot;. One thing I took away is that even though I am (obviously) using them as coding tools (and feel like that they are helpful in this context) AND I am even invited to share what I&#39;ve learned while working with them with everybody, that I am still a lot more skeptical than many in my company. Apart from being a contested and difficult to assess topic, I enjoy thinking about these things and what they do mean for the situation I or my company finds myself/itself in.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;So that part I found interesting and worth thinking about. It motivated me and made me feel like I was living in alignment with what I had written here before: That many of us have to engage with LLM coding tools and therefore those of us who have hearts also should.&lt;/p&gt;
&lt;p&gt;Where I found myself somewhat unable to participate in a meaningful way was the &amp;quot;party&amp;quot; part and I got reminded how little self-efficacy expectations I have&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; by comparison in social settings like this. We were invited to a &amp;quot;Krimi-Dinner&amp;quot; (murder mystery dinner) - basically a kind of humorous play that is given between courses of the meal. The topic was &amp;quot;murder at a single party&amp;quot; (as a once long-time single not one of my favorite eras of my life). The play was extremely cringe inducing as there were elements in which the audience needed to take part. As somebody who is already struggling in social settings like this I had a really bad time and was feeling extremely anxious about maybe having to get up and perform this or that embarrassing thing. Thankfully, I wasn&#39;t chosen and my actual conversations with the people at my table went mostly ok (although I was a little too argumentative I feel like). What somewhat surprised me though - and that even though I knew that this kind of stuff is not my forte - how completely socially burnt out I was after a day of social obligations and especially a dinner in which I needed to be in a forced good mood even though I was feeling anything but good inside. It was great to see everyone, but I gotta admit that for my temperament it&#39;s good that I do not need to live through all the little and not so little social problems that working close by brings (even just declining to go to lunch together - as I did on Friday - felt somewhat aggressive). In this sense working at a distance works just way better for me.&lt;/p&gt;
&lt;p&gt;Finally two more short things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I have been reading &lt;a href=&quot;https://en.wikipedia.org/wiki/Hartmut_Rosa#Resonance_theory&quot;&gt;Hartmut Rosa&#39;s Resonanz&lt;/a&gt; using my new &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/&quot;&gt;eReader&lt;/a&gt; and managed to get more than 6 hours of reading time in in the days of my trip. Very nice.&lt;/li&gt;
&lt;li&gt;And reading Rosa while visiting Freiburg made me realize how much more I am a child of the world of things (to which I also count books and texts, videos and podcasts) and how little I ultimately care about the social world: I care more about its products and how they do tend to tell us something about the social sphere (as they are part of it) as I do care about gaining expertise in acting within that social sphere itself. I find the world of non-humans (even if they are ultimately products of humans) to be more relatable. Which might be an interesting angle to &amp;quot;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html&quot;&gt;Loving from a distance&lt;/a&gt;&amp;quot;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The great thing with these journal type posts is that I don&#39;t need to make a point. So for now I&#39;ll just end it there. Maybe I&#39;ll talk more about this tomorrow, maybe I won&#39;t. I guess we&#39;ll find out.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Everyone installed a version of a skill I had developed, which felt good. This one actually consisted of a non-AI script that downloaded relevant ticket data from our ticketing system and allowed for some cleanup and improvent before telling codex to read the prepared ticket context file and work on filling out a &amp;quot;deliverables and implementation&amp;quot; section which then could be used to further discuss the approach with the agent before actually working on the solution of the ticket. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Which is to say: It is... weird. It seems to me that in many ways we (as a company) are reacting to where the industry is going and that means I am reacting to how the expectations of my company are chaning. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In German you call this &amp;quot;Selbstwirksamekeitserwartung&amp;quot; and it describes a learned expactation towards if acting in a certain context leads to a desired outcome or not. If I have self-efficacy expectations, I observe my world to be moldable and resonant, whereas if I don&#39;t expect to be able to do much, I will feel like the world is dead or hostile to me - or I&#39;m to it. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Journaling? In this Economy?

        https://blog.martin-haehnel.de/2026/02/15/journaling-in-this-economy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1542 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/dailydogo1542/" />
      <updated>2026-02-15T14:18:41Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/dailydogo1542/</id>
      <content type="html">&lt;p&gt;DailyDogo 1542 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the snow next to a passenger drop-off point at the airport.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/75d7edf708a53512b21c6f75510cb027.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1542 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1541 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/dailydogo1541/" />
      <updated>2026-02-15T14:00:57Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/dailydogo1541/</id>
      <content type="html">&lt;p&gt;DailyDogo 1541 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A photo of a waffle with cloudberry jam. A black and white corgi cardigan who is lying on the floor next to the table is watching up into the camera expectantly.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/51cf0adf463b3e5b790d9e154cf75359.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1541 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1540 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/dailydogo1540/" />
      <updated>2026-02-15T14:00:51Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/dailydogo1540/</id>
      <content type="html">&lt;p&gt;DailyDogo 1540 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan jumping into the deep snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e8fc3d8fb280bfeea15e255c9f7e4b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1540 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1539 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/dailydogo1539/" />
      <updated>2026-02-15T14:00:44Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/dailydogo1539/</id>
      <content type="html">&lt;p&gt;DailyDogo 1539 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan in a snowy field, looking out onto the baltic sea in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/db1d8cdee96ea8f5b818d36466b5da09.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1539 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1538 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/15/dailydogo1538/" />
      <updated>2026-02-15T14:00:37Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/15/dailydogo1538/</id>
      <content type="html">&lt;p&gt;DailyDogo 1538&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan rolling around in the snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7e7f59eb46804c222ff413dcc1349d97.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1538 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1537 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/10/dailydogo1537/" />
      <updated>2026-02-10T21:03:37Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/10/dailydogo1537/</id>
      <content type="html">&lt;p&gt;DailyDogo 1537 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in between a couch and a chair, photographed from above.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/4d820ad595530d1b60c109d97c0b170f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1537 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1536 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/09/dailydogo1536/" />
      <updated>2026-02-09T20:20:57Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/09/dailydogo1536/</id>
      <content type="html">&lt;p&gt;DailyDogo 1536 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing like crazy in her do bed in this pretty unsharp photo.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/3c68c7999b2dd222ea6f3656323b11d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1536 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1535 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/08/dailydogo1535/" />
      <updated>2026-02-08T21:00:34Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/08/dailydogo1535/</id>
      <content type="html">&lt;p&gt;DailyDogo 1535 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping with her head in between a clothes airer and a window.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/5c0baca2c5fe064902e383a0227e54a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1535 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1534 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/07/dailydogo1534/" />
      <updated>2026-02-07T21:47:51Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/07/dailydogo1534/</id>
      <content type="html">&lt;p&gt;DailyDogo 1534 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through the snow. There is a canal to her right and a bridge going over it in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/cdebb792936d026450309a962b8c8d3f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1534 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1533 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/06/dailydogo1533/" />
      <updated>2026-02-06T21:34:54Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/06/dailydogo1533/</id>
      <content type="html">&lt;p&gt;DailyDogo 1533 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying between a recliner chair and a footstool. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/2fadd33128f06ca761860a7d9477d3c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1533 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Get Highlights Of Side-Loaded Books Off Of My Kobo And On To Readwise (And Ultimately Into Obsidian)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/05/how-to-get-highlights-of-side-loaded-books-off-of-my-kobo-and-on-to-readwise-and-ultimately-into-obsidian/" />
      <updated>2026-02-05T19:42:53Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/05/how-to-get-highlights-of-side-loaded-books-off-of-my-kobo-and-on-to-readwise-and-ultimately-into-obsidian/</id>
      <content type="html">&lt;p&gt;Just wanted to quickly jot down how I managed to get the highlights of my side-loaded - still bought, just not through the Kobo store - books off the eReader and onto Readwise and from there into &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thing is, Kobo itself doesn&#39;t make it super easy to get these highlights through their online services. And therefore &lt;a href=&quot;https://docs.readwise.io/readwise/docs/importing-highlights/kobo&quot;&gt;Readwise doesn&#39;t offer an easy syncing solution of highlights of side-loaded books&lt;/a&gt; on Kobo-based eReaders. But what works is syncing directly from the eReader directly.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/05/how-to-get-highlights-of-side-loaded-books-off-of-my-kobo-and-on-to-readwise-and-ultimately-into-obsidian/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; For this some kind soul developed an app called &lt;a href=&quot;https://october.utf9k.net&quot;&gt;October&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A desktop application that can send your Kobo highlights to Readwise in a couple of clicks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I found the process fairly easy to set up. [Here are the docs.](https://october.utf9k.net/overview&lt;/p&gt;
&lt;p&gt;I personally use the &lt;a href=&quot;https://github.com/readwiseio/obsidian-readwise&quot;&gt;Official Readwise Obsidian&lt;/a&gt; Plugin to then get my highlights into my notes system (which I consider the source of truth for that kind of stuff).&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;That&#39;s not that different from Kindle, really. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/05/how-to-get-highlights-of-side-loaded-books-off-of-my-kobo-and-on-to-readwise-and-ultimately-into-obsidian/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Get Highlights Of Side-Loaded Books Off Of My Kobo And On To Readwise (And Ultimately Into Obsidian)

        https://blog.martin-haehnel.de/2026/02/05/how-to-get-highlights-of-side-loaded-books-off-of-my-kobo-and-on-to-readwise-and-ultimately-into-obsidian/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1532 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/05/dailydogo1532/" />
      <updated>2026-02-05T19:35:43Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/05/dailydogo1532/</id>
      <content type="html">&lt;p&gt;DailyDogo 1532 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing in the snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/0f82e0b9ce31f6fc746fc99c95af1efe.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1532 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1531 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/04/dailydogo1531/" />
      <updated>2026-02-04T20:47:03Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/04/dailydogo1531/</id>
      <content type="html">&lt;p&gt;DailyDogo 1531 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on her back legs and watching through a supermarktet&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7998d923272049045cf7323511b1782e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1531 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1530 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/03/dailydogo1530/" />
      <updated>2026-02-03T21:13:15Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/03/dailydogo1530/</id>
      <content type="html">&lt;p&gt;DailyDogo 1530 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping with her head between the floor to ceiling window and the table.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/641035160cf88e3f3d314855d1a707ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1530 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          What Is It If It Isn&#39;t What It is



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/" />
      <updated>2026-02-03T21:13:07Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/</id>
      <content type="html">&lt;p&gt;I think &lt;a href=&quot;https://www.garfieldtech.com/blog/selfish-ai&quot;&gt;this&lt;/a&gt; is a very badly argued post about an interesting aspect of the discourse around LLMs.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;it is what it is.&amp;quot;
[...]
No. Fuck no. No it is not. You don&#39;t get off that easily.
[...]
We are making this choice. But really, that means &lt;strong&gt;you have already decided for me&lt;/strong&gt;. And I curse you and the ground you walk on for it. No, I&#39;m not joking or exaggerating. Burn in hell.
[...]
Whether I&#39;ll be able to swallow it and accept (as I do for Amazon and Android, after long resisting them) in order to find a job, I don&#39;t know.
[...]
&lt;strong&gt;As I learn how to work with AI coding agents&lt;/strong&gt;, know that I will be thinking ill of you the entire time. Not because I don&#39;t get to write for loops, but because you have made yet another part of the economy impossible to engage with ethically. This is how societies die. I wish I were being hyperbolic. I really really do. But I have nothing left but contempt for &amp;quot;it is what it is.&amp;quot;
[...]
No it isn&#39;t. It only is what it is because you&#39;re OK with what it is, and aren&#39;t putting in the work to make it otherwise. Those that don&#39;t give a fuck about fair copyright application, about poor people, about our planet, are putting in the work to make it so. And you&#39;re letting them.
[...]
I do not forgive you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&#39;s the juxtaposition of &amp;quot;Saying that »it is what it is« is just an excuse to behave unethically&amp;quot;, i.e. basically saying &amp;quot;we can decide against AI - if we all want it&amp;quot; and then saying &amp;quot;I will have to learn to work with AI to get a job in IT going forward&amp;quot;. I suspect we&#39;ll see more things like this, because people need to eat, people need to feed their kids and people with years and decades of experience in the industry can&#39;t simply get a job in other industries (and in all likelihood wouldn&#39;t get the salaries that they are accustomed to that pay for the houses these people live in and so forth).&lt;/p&gt;
&lt;p&gt;I personally see that &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/&quot;&gt;actively and critically engaging with LLMs&lt;/a&gt; is the realistic ethical stance in this time.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; This article I am talking about implies a certain inevitability that literally anyone can claim: You made me do it. If the writer of this post can claim the same for himself, so can we. Somebody else made us do it. But if that&#39;s the case, if it&#39;s the case that we are all kind of forced to engage with this technology, then we got to imagine a way forward in which we all understand not only the social and environmental costs of these technologies, but also how to make them better by incorporating them into an imagined democratic future.&lt;/p&gt;
&lt;p&gt;Collective action problems are not solved by reminding people of the paradox of collective action, but by winning small arguments one at a time in an excruciatingly slow manner (and by changing people&#39;s frame of reference). &lt;em&gt;This&lt;/em&gt; is the work. So you got a choice: Using coding agents through gritted teeth wishing that people go to hell (and meaning it)&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, or: taking up the work that is to be done.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I probably said this most clearly in my article &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;Those Recent Puzzmo Articles about Claude Code&lt;/a&gt;: &amp;quot;My unpublished article I quote here was supposed to be called &amp;quot;We Need People With Hearts Working on AI&amp;quot;. And that means on all sides of the matter. Inside companies using &amp;quot;AI&amp;quot; (like mine and probably yours) and by workers inside companies like Anthropic, too. This is how I envision we actually change a technology/product and its influence on society for the better: From the &amp;quot;inside&amp;quot; and gradually.&amp;quot; &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;WTF &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        What Is It If It Isn&#39;t What It is

        https://blog.martin-haehnel.de/2026/02/03/what-is-it-if-it-isnt-what-it-is/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1529 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/02/dailydogo1529/" />
      <updated>2026-02-02T19:55:48Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/02/dailydogo1529/</id>
      <content type="html">&lt;p&gt;DailyDogo 1529 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying right next to a clothes airer. Her front legs and here neck are pressed against the meta legs of the airer.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/65ba75af5d3ce67df7befea13c813da1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1529 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Delightful Lists



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/02/delightful-lists/" />
      <updated>2026-02-02T15:11:30Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/02/delightful-lists/</id>
      <content type="html">&lt;p&gt;A project similar to Sindre Sorhus&#39; (the dev behin &lt;a href=&quot;https://sindresorhus.com/velja&quot;&gt;Velja&lt;/a&gt; and &lt;a href=&quot;https://sindresorhus.com/apps&quot;&gt;many, many other apps&lt;/a&gt;) &lt;a href=&quot;https://github.com/sindresorhus/awesome&quot;&gt;Awesome&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/02/delightful-lists/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; is &lt;a href=&quot;https://delightful.coding.social&quot;&gt;Delightful&lt;/a&gt; which is &amp;quot;an initiative by Arnold Schrijver for Social coding commons.&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The internet can be a wonderful place. A place that unites people, to exchange ideas. It allows people to cooperate and unleash their creativity. This brought forth great sources of information and knowledge, open science and many beautiful free software projects to enrich our lives with. The internet has the potential to bring our minds together. To set us free.&lt;/p&gt;
&lt;p&gt;But increasingly commercial interests are thwarting the vision of what the internet can bring to humanity. The gems of free knowledge and open source software are harder to find these day. Drowned out by marketing, advertising and SEO they do not appear in the top of our search results anymore.&lt;/p&gt;
&lt;p&gt;Delightful lists are an effort to help bring change to this trend. To make freedom more discoverable again. This top-level space facilitates navigation to all the wonderful curated lists that are created and maintained all over the web.&lt;/p&gt;
&lt;p&gt;Anyone that wishes to do so can craft and garden their own directory list on a subject that has their passion, and help the commons make small steps towards freedom and prosperity.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Delightful indeed.&lt;/p&gt;
&lt;p&gt;P.S.: If I had known about this earlier, for example, I probably would&#39;ve had an easier time finding a &lt;a href=&quot;https://delightful.coding.social/delightful-sustainable-vps/&quot;&gt;VPS hoster&lt;/a&gt;. I am now with &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/&quot;&gt;OVH&lt;/a&gt; which isn&#39;t on the list and I am not keen on moving again, but still nice. Like &lt;a href=&quot;https://tranquillity.se&quot;&gt;for example&lt;/a&gt;: &amp;quot;We take the utmost care to be as environmentally friendly as possible. Our power is bought from ETC EL, a non profit organization and leading ecological power provider. All waste heat is kept and powers the farm&#39;s green house. During summer solar panels provide all electricity and the excess is sold back to the grid.&amp;quot; Cool, inspiring stuff.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I didn&#39;t know that this even was a project... I always assumed it was more of a convention to name lists with interesting links about a topic &amp;quot;awesome xyz&amp;quot;. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/02/02/delightful-lists/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Delightful Lists

        https://blog.martin-haehnel.de/2026/02/02/delightful-lists/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1528 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/02/01/dailydogo1528/" />
      <updated>2026-02-01T19:37:38Z</updated>
      <id>https://blog.martin-haehnel.de/2026/02/01/dailydogo1528/</id>
      <content type="html">&lt;p&gt;DailyDogo 1528 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to a couch with her tongue out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/51a8a441a621eb9c6498ed682d5522b3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1528 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1527 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/31/dailydogo1527/" />
      <updated>2026-01-31T21:00:25Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/31/dailydogo1527/</id>
      <content type="html">&lt;p&gt;DailyDogo 1527 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a carpet next to two dog chews and a table. There is a ray of sunlight brushing her nose.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6fa3eb84b6584e9fc768b7917838b7dd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1527 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1526 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/30/dailydogo1526/" />
      <updated>2026-01-30T21:50:46Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/30/dailydogo1526/</id>
      <content type="html">&lt;p&gt;DailyDogo 1526 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor on a round carpet. She is anticipating getting a candy from the photographer (me!).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/54da7ac9608f702f01a3d02599b78208.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1526 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Read As A Student (And Looking Back At Three Of My Own Texts When I Was A Student)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/" />
      <updated>2026-01-30T16:43:10Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/</id>
      <content type="html">&lt;div id=&quot;1QbtOSyE5C8&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/1QbtOSyE5C8&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;I like this a lot. When I was a student this was exactly the kind of thing I was struggling with. I was in the history field so my problem was basically always: How do you tell something about a certain series of events if don&#39;t read the whole thing? And so I read, ineffectively throughout my whole university time. I got okay at it, but while I was listening to these two videos I thought to myself that I didn&#39;t do a good enough job of making my topics well-defined. I give you three examples.&lt;/p&gt;
&lt;p&gt;My first ever &amp;quot;historical essay&amp;quot; - I studied history of science and technology - was written about the &lt;a href=&quot;https://en.wikipedia.org/wiki/London_Bridge#Old_London_Bridge_(1209%E2%80%931831)&quot;&gt;old london bridge&lt;/a&gt;. I got a very good grade for it and I was a very happy student because of that for the whole day when I got it back. I had just given up on a digital media (computer science) program where grading was handled much harsher.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; But thinking about it now: what made this text about its history and ultimate demise a somewhat successful one was that it told the story of the bridge and how it was inhabited in a concise fashion. It didn&#39;t have any real thesis attached to it, but it was readable and compressed a few longer or hard to find texts and I think my professor of historical urban studies back then appreciated it for that. It didn&#39;t get lost in too much detail or tried to do too much at the same time. It was a simple 10 page (or so) document that focused on telling the story of that bridge, no more no less.&lt;/p&gt;
&lt;p&gt;My bachelor&#39;s thesis was written about the &lt;a href=&quot;https://en.wikipedia.org/wiki/Berlin_Botanical_Garden_and_Botanical_Museum&quot;&gt;botanical garden in Berlin&lt;/a&gt;. It was also kind of a general history of it. If I recall correctly, it was kind of boring and mostly written from secondary sources and didn&#39;t really have any opinions about the history of this botanical garden. There a bunch of different reasons why botanical gardens were of interest to me back then - like there network-like connectivity to other gardens and researchers far away (connected through letters and ships and so forth), the tools used to transport specimens (like the &lt;a href=&quot;https://en.wikipedia.org/wiki/Wardian_case&quot;&gt;wardian case&lt;/a&gt;), the connections to colonial world exploration, the citizen science aspect  - but most of all I liked hanging out there and the most others didn&#39;t seem to care too much about botany. It was a quiet place with a lot of history and it was just kind of neat to hang out there by myself in an otherwise bustling city. I was lucky that I was still writing my bachelor&#39;s thesis back then, so I got a good grade as well. Looking back at it now I know that the work lacked depth. A thesis, even a bachelor&#39;s one, should have a point. And this one didn&#39;t have one. It just assembled years and dates, put them in an order, introduced headings to demarcate different eras of the garden but otherwise had nothing to say. I just found it so wonderful that an institution like this existed and how it still exists to this day, but I didn&#39;t even write about its standing power (surviving &lt;em&gt;two World Wars&lt;/em&gt; while being situated in Berlin is kind of impressive), I just assembled a chronology.&lt;/p&gt;
&lt;p&gt;My master&#39;s thesis was about (ostensibly) the colonial aspirations of the botanical garden in Berlin. But it was also kind of about the 100 years before that and how the methods and approaches and theories changed over time (but kind of also stayed the same&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;) and how all of that could be seen as &amp;quot;a history of science as a history of recombination of ideas&amp;quot;. I think my thesis could&#39;ve have been so much stronger, if I had focussed on the colonial botany aspect and leave the recombinational history aspect for another time (or the other way around). Regardless, my grade was still good - although the worst of these three examples - and I got to admit that I am not super proud of this work. Part of it is that I got access to some of the archival materials of the botanical garden&#39;s/museum&#39;s archive to research the colonial botany aspect but... I think I just didn&#39;t know how to do it! And so I gave the materials back without ever having really read them in the way you&#39;re supposed to. I never really thanked the director of the library of the museum for getting access either.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; Looking at it through the lens of the video linked above I realize now that I had half of a right thought back then: I knew that just delivering a chronology was not enough, but I didn&#39;t get that talking about two topics at the same time - I still remember it: make on part about its history (chronology) and the other about what it means (the recombination idea) - that didn&#39;t even really relate to each other was bad. And what&#39;s more, I ended up writing a chronology about the 120 years or so in which the botanical garden in Berlin really mattered anyway: If I could do it all over again, I would probably try to focus on one of the two aspects that I tried to smash into one master&#39;s thesis.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I think it&#39;s great that these kinds of videos are made because they do communicate an important aspect of the work of writing a researched text (and to me that&#39;s seems applicable in or outside academia) and point to something that might get lost in writing alone: Everyone struggles with this. And it is really about not reading all of a particular source, but the parts that are important to you, that strengthen your argument - you do have an argument right? Right? &lt;em&gt;Right?&lt;/em&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;That was not the reason I abondend it, my grades were for the most part ok actually in that one. But I never got a &amp;quot;1.0&amp;quot; which is comparable to an A+. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;And that was the century of darwin. So kind of insane to think how much ideas &amp;quot;survived&amp;quot; evolutionary theory and just were adapted in new ways. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I know that I was burned out and was running out of funding and had to finish my thesis that semester no matter what. But I cringe every time I think about how kind the people at musum&#39;s library were and what a turd I was for not at least writing an email. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The question back then was also: Will this be enough for around 80 pages? Back then I wasn&#39;t so sure. Today I&#39;d be pretty confident that it would have been enough. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In this sense a video or presentation about this point is stronger, probably because it is more performative than a text could ever be. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Read As A Student (And Looking Back At Three Of My Own Texts When I Was A Student)

        https://blog.martin-haehnel.de/2026/01/30/how-to-read-as-a-student-and-looking-back-at-three-of-my-own-texts-when-i-was-a-student/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1525 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/29/dailydogo1525/" />
      <updated>2026-01-29T17:53:39Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/29/dailydogo1525/</id>
      <content type="html">&lt;p&gt;DailyDogo 1525 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up of black and white corgi cardigan wearing a red bow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e752d463a3b8d2a33b2dd699975ba598.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1525 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1524 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/28/dailydogo1524/" />
      <updated>2026-01-28T21:05:43Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/28/dailydogo1524/</id>
      <content type="html">&lt;p&gt;DailyDogo 1524 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan shewing the nose of a weirdly shaped reindeer dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a4f3d9e48d7c36806ae5c6f5cc9b8a2b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1524 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1523 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/27/dailydogo1523/" />
      <updated>2026-01-27T21:36:46Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/27/dailydogo1523/</id>
      <content type="html">&lt;p&gt;DailyDogo 1523 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in her favorite corner. Her dog bed is visible in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/9ccbaba190453c37f447080478ed5552.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1523 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Post-Literate Society



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/" />
      <updated>2026-01-27T20:40:19Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/</id>
      <content type="html">&lt;p&gt;Probably the forcefullest&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; reading crisis argument I&#39;ve seen so far: James Mariotts&#39; &lt;a href=&quot;https://jmarriott.substack.com/p/the-dawn-of-the-post-literate-society-aa1&quot;&gt;&amp;quot;The dawn of the post-literate society&amp;quot;&lt;/a&gt; which he published on his &lt;a href=&quot;https://leavesubstack.com&quot;&gt;Substack&lt;/a&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; Presented with a lot of fervour and not a lot of hope at the same time (no wonder, living trough the &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;fatalistic turn&lt;/a&gt;).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Just as the advent of print dealt the final death blow to the decaying world of feudalism, so the screen is destroying the world of liberal democracy.&lt;/p&gt;
&lt;p&gt;As tech companies wipe out literacy and middle class jobs, we may find ourselves a second feudal age. Or it may be that we are entering a political era beyond our imagining.&lt;/p&gt;
&lt;p&gt;Whatever happens, we are already seeing the world we once knew melt away. Nothing will ever be the same again.&lt;/p&gt;
&lt;p&gt;Welcome to the post-literate society.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I will say that &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/&quot;&gt;the skeptical &amp;lpar;of the reading crisis&amp;rpar; article&lt;/a&gt; I linked a couple of days ago is a little incomplete and a little too happy to omit a couple of things.  I commented it like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;He makes great points about the power of the written word and why a minuscule to moderate decline in reading is nothing too worrying, actually. [...] I think this all rings true. But I can also tell by looking at my own reading situation that I am personally at a cross roads and have actually read less and less over time (especially books).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think I might&#39;ve been a little too generous. Because reading Mariotts&#39; text - emotional and maybe not so super even-keeled as it may be - really gets at a core problem that handwaving will not solve. I think Mastroianni&#39;s&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; the &lt;a href=&quot;https://www.experimental-history.com/p/text-is-king&quot;&gt;reading crisis is overblown article&lt;/a&gt; is not denying the fact that there is a moderate (so far) decline in reading (ability and volume) and I think his main point is more that a post-literate society is not likely but that some parts (I would argue big parts) of society will not be literate in the sense that they take part in reading/writing culture. He doesn&#39;t state it super obviously, but I think this quote points to it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Being ignorant of the forces shaping society does not exempt you from their influence—it places you at their mercy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I think a lot more people will be at the mercy of the few literate people that are in power or employed by power. I imagine there will be other literate people, too. Some more some less literate, so I agree that not all of us will lose the hunger for learning/reading/writing/thinking/argueing. But these pockets of literacy in an otherwise post-literate world will probably not do a lot to safe democracy/science/humanities. Sure, us few can enjoy books (even &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/&quot;&gt;novels&lt;/a&gt;), but it might not move the needle in public discourse. And I think here is where I do see a darker future than Mastroianni who seems to be happy with the fact that his small community of readers is literate and that the decline is just moderate (so far).&lt;/p&gt;
&lt;p&gt;I think it is also slightly short sighted to claim a moderate decline as the biggest literacy problem seems to be in the younger generations. So older &amp;quot;pre-post-literates&amp;quot; may skew the situation. What makes me hopeful is this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Fact #1: there are signs that the digital invasion of our attention is beginning to stall. We seem to have passed peak social media—time spent on the apps has started to slide. App developers are finding it harder and harder to squeeze more attention out of our eyeballs, and it turns out that having your eyeballs squeezed hurts, so people aren’t sticking around for it. The “draw people in” phase of the internet was unsurprisingly a lot more enticing than the “shake ‘em down” phase—what we now refer to, appropriately, as “enshittification”.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.statista.com/statistics/433871/daily-social-media-usage-worldwide/&quot;&gt;This is true.&lt;/a&gt; And yet, even though this does make me hopeful, I also gotta admit that my immediate thought here is &amp;quot;Who is we&amp;quot;. I do believe the &amp;quot;peak social media&amp;quot; line somewhat for us Millenials (and maybe &lt;em&gt;even&lt;/em&gt; older people), but I am less sure this holds true for people not having lived through (and participated in) more enjoyable social media times. If you&#39;ve never known other (mainstream!) options and vibes around social media (I include blogs here, too), or even if you&#39;ve only heard about them oral history style (in a podcast or something), you might not know what you&#39;ve missed. And realizing that while short-form video is taking away your ability to making (or following) a longer literate culture argument&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; may lead you down to the &amp;quot;eternal present&amp;quot; problem that Mariott is talking about:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Our culture is being transformed into a smartphone wasteland.&lt;/p&gt;
&lt;p&gt;Cut off from the cultural riches of the past we are condemned to live in a narcissistic eternal present. Deprived of the critical tools to question and develop the insights of those who went before us, we are condemned to endlessly repeat and pastiche ourselves, superhero film by superhero film, repetitive pop song by repetitive pop song.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I guess what I&#39;m saying is that this somewhat apocalyptic article really resonated strongly with me and that I wish people would take the 15-20 minutes time to read this and ask themselves if they don&#39;t want to be at least one of the few proud literate folk remaining, even if democracy is somewhat fucked. We can still stand up for what is right and still try to challenge ourselves to grow. I know I want this for myself.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Is that a word? &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;It pains me that seemingly a lot of longer interesting arguments (at least from the US) are made on Substack and so I keep linking there, even though it is kind of like a nazi bar. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;that&#39;s the other guy &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although I am &lt;em&gt;certain&lt;/em&gt; that believing nothing critical, creative or interesting is going on in people steeped in this kind of media is also naive... &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        The Post-Literate Society

        https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1522 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/26/dailydogo1522/" />
      <updated>2026-01-26T21:30:13Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/26/dailydogo1522/</id>
      <content type="html">&lt;p&gt;DailyDogo 1522 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing at the edge of a patch of snow. It is evening and in the background an industrial chimney is visible, its warning lights glowing red.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/897275bbb3d4d370609a212bc2b5b6aa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1522 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1521 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/25/dailydogo1521/" />
      <updated>2026-01-25T19:15:22Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/25/dailydogo1521/</id>
      <content type="html">&lt;p&gt;DailyDogo 1521 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing over a dog toy and smiling into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/dd1030f46d7225ef2c83f56c1f0fc368.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1521 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Why Novels



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/25/why-novels/" />
      <updated>2026-01-25T11:25:22Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/25/why-novels/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-27 - added a Reading tag&lt;/li&gt;
&lt;li&gt;2026-01-28 - added a footnote to &amp;quot;one mind (or so we like to think)&amp;quot; to make clear that I don&#39;t think novels are the product of just one mind.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(Another excerpt blog post. Since I want to talk about the &amp;quot;theories&amp;quot; put forth, I felt like I had to quote a lot from this article. It also preserves things that I think are somewhat valuable in my quest to &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/&quot;&gt;rediscover reading&lt;/a&gt; as an activity for me. And reading fiction is just a big a part of this as reading non-fiction.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dynomight.net/novels/&quot;&gt;This post&lt;/a&gt; lists a bunch of reasons of why reading novels might be good.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;theory-1-ye-olde-status&quot;&gt;Theory 1: Ye olde status&lt;/h2&gt;
&lt;p&gt;The obvious explanation is that there’s nothing intrinsically great about reading novels. The reason we think it’s great is that reading novels—at least the right ones—is high status.[…]&lt;/p&gt;
&lt;h2 id=&quot;theory-2-diminishing-returns&quot;&gt;Theory 2: Diminishing returns&lt;/h2&gt;
&lt;p&gt;[…]Under this theory, what’s important is having the ability to read novels. But said ability is acquired by reading novels, so read some novels.&lt;/p&gt;
&lt;p&gt;[T]his theory suggest that reading novels has diminishing returns. That fits nicely with the fact that many people push their children to read novels while not reading any themselves.[...]&lt;/p&gt;
&lt;h2 id=&quot;theory-3-common-language&quot;&gt;Theory 3: Common language&lt;/h2&gt;
&lt;p&gt;I think Catcher in the Rye is a good but not great book. But I love talking about Catcher in the Rye because (1) all North Americans seem to have read it, and (2) whenever I ask someone to tell me how they feel about Holden Caulfield, I always seem to learn something about them.[...]&lt;/p&gt;
&lt;h2 id=&quot;theory-4-legible-mind-space&quot;&gt;Theory 4: Legible mind-space&lt;/h2&gt;
&lt;p&gt;Maybe novels are just another form of entertainment. OK. But say you tried to tell the same story as a novel or as movie / podcast / opera / interpretive dance performance. Different formats will be better in different ways. [...] Thoughts are worth exploring. If you want to explore thoughts, maybe novels are the best way to do that. [...]&lt;/p&gt;
&lt;h2 id=&quot;theory-5-purity-of-vision&quot;&gt;Theory 5: Purity of vision&lt;/h2&gt;
&lt;p&gt;Movies are expensive to make. To be financially viable, they need to target a large slice of the population. Movies also reflect the combined efforts of many people. Both of these mean that movies are a compromise between different visions.[...] Novels are usually written by one person.[...]&lt;/p&gt;
&lt;h2 id=&quot;theory-6-all-these-theories-are-stupid&quot;&gt;Theory 6: All these theories are stupid&lt;/h2&gt;
&lt;p&gt;[...]Maybe the point of reading War and Peace is that War and Peace is incredible and obviously one of the greatest pieces of art ever made in any medium. [...] I definitely feel like I’m living my best life when I read War and Peace. But I also feel like I’m living an OK-ish life when I read a novel about Spenser, private investigator. And most novels most people read are closer to the Spenser than to War and Peace. And I still feel better spending an afternoon reading about Spenser than I would watching 99% of TV shows.&lt;/p&gt;
&lt;h2 id=&quot;theory-7-dopamine&quot;&gt;Theory 7: Dopamine&lt;/h2&gt;
&lt;p&gt;Or perhaps the difference is that reading is a thing you do rather than something you consume. […] But if you read (or do watercolors, or meditate) you’re training yourself to calmly pursue long-term goals and to sustain attention in the face of complexity. [...] Sometimes I wonder if phones/apps are the most addictive thing ever created. I suspect that more people today are addicted to their phones today than were ever addicted to any drug [... and] that phone addiction will eat a larger part of your soul.&lt;/p&gt;
&lt;p&gt;I think this is a big part of the explanation.&lt;/p&gt;
&lt;h2 id=&quot;theory-8-non-fungible-time&quot;&gt;Theory 8: Non-fungible time&lt;/h2&gt;
&lt;p&gt;In the end, I don’t think novels are the best way to spend your time. In my view no novel—not even War and Peace—is as good as a truly great conversation. [... M]aybe reading a novel is the best thing you could do in the category of things you could realistically do.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I don&#39;t really like &amp;quot;theory listicles&amp;quot; because they don&#39;t integrate all these thoughts into one coherent argument. Not that that is easy or even always possible (yet), but if I get the feeling that the form is deliberately chosen as opposed to an actual interim product of an integrated theory forthcoming, I feel it&#39;s optimizing for engagement instead of exploring and a refining an argument.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Anyway, one &amp;quot;theory&amp;quot; absent of this list is the theory that literature at large is a great mine for the practice of creating theory itself. When I was a student of History of Science And Technology I was employed by one of the participating departments for this program called &amp;quot;Literaturwissenschaft mit dem Schwerpunkt Literatur und Wissenschaft&amp;quot; (more or less &amp;quot;literary studies with a focus on literature and science&amp;quot;). So in this department&#39;s classes we read (parts of) novels, journal articles and essays about novels and other literary works (or non-fiction works read through a literary lens) all in service of being able to say something about the practice of science, history, the humanities, &amp;quot;media&amp;quot; and so forth. And novels are great for exploring the possibility space of science and being exposed to inventive new ways to view human pursuits.&lt;/p&gt;
&lt;p&gt;An example of this approach to literature would be &lt;a href=&quot;https://monoskop.org/Friedrich_Kittler&quot;&gt;Friedrich Kittler&lt;/a&gt; who wrote, for example about &lt;a href=&quot;https://de.wikipedia.org/wiki/Aufschreibesystem&quot;&gt;Aufschreibesysteme&lt;/a&gt; which is a term that covers the ensembles of technologies and institutions that build the base on which a culture &amp;quot;runs&amp;quot;: its memory, data processing apparatus and so forth. Now, a lot of this writing is a response to a kind of against the grain re-reading of Michel Foucault&#39;s ideas around discourse. But parts of these ideas were indeed developed employing the help of actual novels.&lt;/p&gt;
&lt;p&gt;Novels sometimes include sketches of theories that you can use for your own uses. Or (especially historical) novels and their descriptions of f.x. how a certain technology was used are valuable data coffers (about the possible, thinkable, plausible when the book was written, norms, expectations...). They can be used for illustrating a point you&#39;re trying to make, for example. Sometimes they offer a catchy term - like Kittler&#39;s &amp;quot;Aufschreibesystem&amp;quot;, itself taken from the autobiographical writings of the mentally ill Daniel Paul Schreber.&lt;/p&gt;
&lt;p&gt;Another way novels are great fodder for the theorists is that they allow us to think about how any given book fits into our broader understanding of [insert your favorite theoretical subject here]. They can tell us something about writing, about society, about art, about technology, about science, about the past, about philosophy, nature, the human mind and so forth. The question &amp;quot;What does this tell us about [insert your favorite theoretical subject here]?&amp;quot; is interesting, because it may make us question beliefs about the world and how it works or could work. &amp;quot;Somebody was able to think &lt;em&gt;this&lt;/em&gt;. What does &lt;em&gt;that&lt;/em&gt; mean?&amp;quot;. In this way it both opens up a wealth of possible thoughts in this world and also defines what can be said about the world at some point in the past, today and, in some way, even in the future.&lt;/p&gt;
&lt;p&gt;One of my favorite books is probably the &amp;quot;Der Mann Ohne Eigenschaften&amp;quot; (Man Without  Qualities) by Robert Musil. One passage in it frames this thinking about possibilities beautifully:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If there is a sense of reality, there must also be a sense of possibility. To pass freely through open doors, it is necessary to respect the fact that they have solid frames. This principle, by which the old professor had lived, is simply a requisite of the sense of reality. But if there is a sense of reality, and no one will doubt that it has its justifications for existing, then there must also be something we can call a sense of possibility. Whoever has it does not say, for instance: Here this or that has happened, will happen, must happen; but he invents: Here this or that might, could, or ought to happen. If he is told that something is the way it is, he will think: Well, it could probably just as well be otherwise. So the sense of possibility could be defined outright as the ability to conceive of everything there might be just as well, and to attach no more importance to what is than to what is not.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href=&quot;https://en.wikiquote.org/wiki/Robert_Musil&quot;&gt;source&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;So, if you ask me: Novels in particular, because they take time and attention to read and are often the result of one mind (or so we like to think)&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and because they are less expensive to make but also because they have been a status symbol (which makes them an interesting comparison point historically speaking) and because they touch in part every and all of the &amp;quot;theories&amp;quot; that I quoted when I started this blog post make them valuable to read. It all depends in part on the reader. And trying to reduce the relationship between all of us individually to our relationship to novels to a causal reasoning chain is not that helpful, actually.&lt;/p&gt;
&lt;h3 id=&quot;p-s-musing-about-an-actual-theory-about-novels&quot;&gt;P.S. Musing About An Actual Theory About Novels&lt;/h3&gt;
&lt;p&gt;A theory of &amp;quot;why novels&amp;quot; will have to climb up in complexity a bit and should ask, how these mini-theories could be integrated into something that has a more universal character. Because if all theories are partly true at the same time we need concepts that can carry this aspect of changing priorities depending on who is exposed (and when) to our object of investigation.&lt;/p&gt;
&lt;p&gt;I therefore think a theory of the novel would need a strong sense of historicity as well as &amp;quot;media-ecology&amp;quot; as it is the time and place, the individual reader (a problematic term) and the novel &lt;em&gt;together&lt;/em&gt; that make the novel appear relevant in this way or that way. These parts build a system, network or biotope - or maybe it&#39;s better to say that the system, network or biotope makes these parts appear as distinguishable entities. In any case: &amp;quot;Why novels&amp;quot; would need to analyze, I think, typical contexts in which novels are read, what patterns emerge from there and how did that change over time. I am not going to write such a theory but the answer most certainly is not &amp;quot;plurality of mini theories&amp;quot;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;That being said: The blog post did make me write a bunch and made me look up a quote or two. So it did something. Which makes it in some ways similar to what novels can do sometimes. Even a so-so novel may be used as food for exploring a thought. And sometimes it might even be a blog post that does something similar.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I felt similar feelings about the Derek Severs Book &amp;quot;How to Live: 27 Conflicting Answers and One Weird Conclusion&amp;quot;. Short review &lt;a href=&quot;https://app.thestorygraph.com/reviews/bf119f3d-4e77-49f5-a179-43b9d43ac4c9&quot;&gt;here&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;EDIT: I think I didn&#39;t make it obvious enough that a book is &lt;em&gt;absolutely not&lt;/em&gt; the result of one mind. In classical as well as self publishing there are editors and marketers and designers and test readers and so on and so forth. The writer surely didn&#39;t invent any novel wholecloth like a solepsistic genius either. If we want to be generous to the &amp;quot;one mind&amp;quot; claim we maybe could say that one mind had an outsized impact on a novel, but claiming it is the result of &amp;quot;one mind&amp;quot; is nothing short of hyperbole. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Just  to make it abundandly clear: What I am proposing here is a media theory. It claims to be about novels, but it might as well be about blogs or whatever. This applicability problem would have to be solved as well. Probably by comparing novels to other media. I think the novel as such had more historical significance than for example podcasts had (so far) and its unique aspects coupled with its relatively long history would be something to use to make novels stand out in comparison to other media, therefore justifying having a relatively universal theory made up about it. A real theory of &amp;quot;why novels&amp;quot; would need to go there. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/25/why-novels/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Why Novels

        https://blog.martin-haehnel.de/2026/01/25/why-novels/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1520 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/24/dailydogo1520/" />
      <updated>2026-01-24T18:24:49Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/24/dailydogo1520/</id>
      <content type="html">&lt;p&gt;DailyDogo 1520 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through an urban winter landscape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/fc80fc207f61b32f7f9ccbb65df144ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1520 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I Picked An E-Reader



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/" />
      <updated>2026-01-24T14:38:08Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/</id>
      <content type="html">&lt;p&gt;&lt;/p&gt;
&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-24 - Added some links and fixed some typos and added a couple of missing words.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;In &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/&quot;&gt;my last post&lt;/a&gt; (published last night, so technically today) about my E-Reader search I wrote at the end:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I gotta look more at Kobo devices, I think. But yeah, that&#39;s where I&#39;m at with this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, so I did and then I ordered myself a &lt;a href=&quot;https://eu.kobobooks.com/products/kobo-libra-colour&quot;&gt;Kobo Libra Color&lt;/a&gt; (or Colour). With a stylus. I decided to go white this time (and a blue cover).&lt;/p&gt;
&lt;p&gt;I think that the Libra is a good compromise between all the competing wishes and requirements for this new thing. I mostly wanted something better than my first gen Kindle Scribe that I received as a gift from my employer a few years ago. It&#39;s not like I had a clear list of things I wanted in my mind (&lt;a href=&quot;https://hachyderm.io/@finn_matti/115922168346421340&quot;&gt;my post on Mastodon&lt;/a&gt; was the closest I got to something like that), but after reading about E-Readers a bunch, looking at reviews and general comments (f.x. on the &lt;a href=&quot;https://www.reddit.com/r/ereader&quot;&gt;r/ereader&lt;/a&gt; subreddit) I discovered what I wanted:&lt;/p&gt;
&lt;p&gt;(&lt;a href=&quot;https://comparisontabl.es/e-readers/?product1=Kindle+Scribe&amp;amp;product2=Kobo+Libra+Colour#sbs&quot;&gt;Here&#39;s a good comparison between the two devices.&lt;/a&gt;)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;smaller size&lt;/strong&gt; - The Kindle Scribe is just way too big to read comfortably on it for me if not sitting at my desk and honestly even then it&#39;s kind of a bad experience. I always thought that it would nice for reading PDFs or things with diagrams/figures but I find that I actually read those on my laptop directly most of the time. For the kinds of books I read, I don&#39;t need this big a form factor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;less weight&lt;/strong&gt; - The Libra Color is about half the weight of the Scribe which should mean I can actually read using only one hand. That is also kind of important when using a stylus as that naturally means holding the stylus in one hand and the device in the other.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;stylus compatibility&lt;/strong&gt; - We&#39;ll have to see how this one goes, as smaller tablets naturally mean less real estate to rest your hand on and just simply write, but I assume for some basic note taking (I am more of a typist regardless) and annotating this is probably still pretty nice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;physical page turning buttons&lt;/strong&gt; - I owned a few Kindles over the years. The Scribe, a 6th gen paperwhite and before that (I believe) a Kindle Keyboard. And what I actually started to miss from these newer devices was the pager turning buttons from my first Kindle that I ever owned. The Libra has page turning buttons, so let&#39;s see if the nostalgia for them was justified.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;no subscriptions&lt;/strong&gt; - I understand that some extra features for hardware devices cost money to build and maintain. I begrudgingly pay for my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/17/oura-renewal/&quot;&gt;Oura subscription&lt;/a&gt; for example, although it also has added some features (like &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/23/oura-finally-supports-sleep-dept/&quot;&gt;sleep debt&lt;/a&gt;) that are of real value to me. However with the E-Reader I don&#39;t need another cloud sync service or whathaveyou. The Libra Color can be used with Dropbox for example and I will probably drive this thing using &lt;a href=&quot;https://calibre-ebook.com&quot;&gt;Calibre&lt;/a&gt; most of the time anyway.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;not too many bells and whistles&lt;/strong&gt; - I want to get back into reading and therefore I am wary of things that can do more than that. This is why I didn&#39;t go with the Boox Palma 2 Pro as it is basically a fully fledged E-Ink smartphone (minus the phone call ability, at least out of the box).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now I wait patiently for the device to arrive at my doorstep and then we&#39;ll see how it feels to read with this thing.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;At least if you don&#39;t read at a desk. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        I Picked An E-Reader

        https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          An Update On Finding A New E-reader



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/" />
      <updated>2026-01-23T22:47:33Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://hachyderm.io/@finn_matti/115922168346421340&quot;&gt;I recently posted&lt;/a&gt; on Mastodon:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am looking for #recommendations for an #eReader! I own a #kindle scribe, but it is way too heavy and unwieldy for my use case. Some thoughts and ideas I have had:&lt;/p&gt;
&lt;p&gt;⁃ In general I love small form factors (I prefer an iPad mini or smaller), I like physical page turning buttons, but don&#39;t mind if they are missing. Since I am not getting a steam machine, I am willing to spend money (upper limit is around a 1000€, which hopefully is plenty) on a good eReader.
⁃ I like the Boox Palma 2 - is the pro version worth it? I’ve heard these devices are somewhat delicate (reports of easily cracked screens). Is that true? It seems like a nice device to own.
⁃ Are there any good eReaders coming from Europe? There are eReaders from Europe in general, but are there any good ones? Seems like most recs’ are for Kindle, #Kobo or #Boox devices…
⁃ I was also thinking about the #daylightcomputer and the #remarkable, but these are more expensive devices because they do more. Regardless: Are they any good in your opinion? I could see liking these for e.g. relfective writing and similar.&lt;/p&gt;
&lt;p&gt;Thanks for your thoughts and help in advance. Please boost to help me find knowledgeable people. ✌️&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://mas.to/@JHKoivula/115923035577744689&quot;&gt;Some&lt;/a&gt; &lt;a href=&quot;https://toot.community/@j258853/115922412960918550&quot;&gt;kind&lt;/a&gt; &lt;a href=&quot;https://fedi.caliandroid.de/@st3fan/statuses/01KFGNMN4VNBYPAP5NTEF5G5EM&quot;&gt;people&lt;/a&gt; answered and gave me their take on the product they liked. And I did a little of my own research and I wanted to share what I&#39;ve found so far:&lt;/p&gt;
&lt;h3 id=&quot;remarkable-paper-pro-move-not-for-me&quot;&gt;reMarkable Paper Pro Move - Not For Me&lt;/h3&gt;
&lt;p&gt;I came &lt;em&gt;this&lt;/em&gt; close to pulling the trigger on a &lt;a href=&quot;https://remarkable.com/products/remarkable-paper/pro-move&quot;&gt;remarkable paper pro move&lt;/a&gt; until I saw &lt;a href=&quot;https://www.youtube.com/watch?v=qe7jEaifiqc&quot;&gt;this video review&lt;/a&gt; from someone that made it clear to me that this one isn&#39;t for me. I am getting this thing to read first and foremost and from what I can tell the Pro Move is actually not a great E-Reader&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;. It seems to be a serviceable note taking device, if you&#39;re into digital handwriting and doing some scribbling, I guess, but I am actually none of these things. I have always preferred to write using a keyboard if given the choice. That some of its features are locked behind a subscription - even if understandable (servers for web and sync services cost money) - was also a minus. But what really was surprising to me: How bad the refresh rate on this thing seems to be.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://goodereader.com/blog/electronic-readers/remarkable-paper-pro-move-full-review&quot;&gt;This review&lt;/a&gt; is very clear about the hardware and how it feels to use:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The unit is incredibly sluggish and slow, with only 2 GB of RAM, which does not provide it with any real speed. There are also no speed modes to speed things up, either. E-books don’t have many formatting options, and the note-taking experience is largely a carryover from previous units. The colors have a massive latency delay to the point where the color you are writing on the screen takes anywhere between 1 to 3 seconds to render[.]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://markjardine.com/blog/sketching-through-my-midlife-crisis&quot;&gt;Some people seem to like it despite this&lt;/a&gt;, but I wouldn&#39;t take the risk personally.&lt;/p&gt;
&lt;h3 id=&quot;boox-palma-2-pro-not-for-me-i-think&quot;&gt;Boox Palma 2 Pro - Not For Me (I think?)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://shop.boox.com/products/palma2pro&quot;&gt;This&lt;/a&gt; was the other one of the devices that caught my eye. There is &lt;a href=&quot;https://youtu.be/xwTub7_we0w&quot;&gt;this recent video&lt;/a&gt; by MKBHD that made me second guess myself. I like the form factor a lot. And it&#39;s cool that you can download apps like kindle or whatever to read on the device. But the fact is that it is basically a smartphone and I can see myself not using it for reading but for scrolling mastodon or whatever. I&#39;d rather not have that. And as soon as I go &amp;quot;I just have to make sure that I don&#39;t install any distracting apps...&amp;quot; in my head, I know that this is not the device for me.&lt;/p&gt;
&lt;p&gt;Gotta be honest: This is not as dead to me as the Pro Move, but I am pretty hesitant to pull the trigger. At least both the Boox Palma as well as the reMarkable made it clear that really want an eReader and not a smartphone or tablet with an eInk screen. I own an older iPad Pro and an iPad mini. I don&#39;t need an eInk tablet (or smartphone for that matter).&lt;/p&gt;
&lt;p&gt;Similar to the MKBHD video &lt;a href=&quot;https://appleinsider.com/articles/25/11/30/boox-palma-2-pro-review-adds-color-at-a-significant-cost&quot;&gt;this written review&lt;/a&gt; makes it clear that the Palma 2 Pro comes with some downsides and either you&#39;re fine with that (and you&#39;ll probably love the device) or you aren&#39;t. But apart from that this review makes it also sound like a nice device - which is why I am still a little torn.&lt;/p&gt;
&lt;h3 id=&quot;pocketbook-the-european-mainstream-alternative-that-is-not-for-me&quot;&gt;PocketBook - The European Mainstream Alternative... that is not for me&lt;/h3&gt;
&lt;p&gt;PocketBook is a European brand of E-Readers but &lt;a href=&quot;https://en.wikipedia.org/wiki/PocketBook_International&quot;&gt;according to Wikipedia&lt;/a&gt; they are made in Asia. So not that different from all the other manufacturers. They are supposedly one of the bigger brands, but their Website really isn&#39;t that great which makes me wary of buying from them, to be honest. They have 230 employees and 150 million revenuw but nobody knows &lt;a href=&quot;https://pocketbook.ch/en-ch/where-to-buy&quot;&gt;how to configure Google Maps&lt;/a&gt; to use on a prod system over there?&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A Screenshot of the Where to buy page scrolled to the embedded Google Maps map. The embed shows an error &amp;amp;quot;The page an&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/75ecc0b841792465b4dd208d1f5aa671.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s bad and makes not want to give them money.&lt;/p&gt;
&lt;h3 id=&quot;what-else-is-there&quot;&gt;What Else Is There&lt;/h3&gt;
&lt;p&gt;There are many more manufacturers of E-Readers. For technical details I found &lt;a href=&quot;https://comparisontabl.es/e-readers/&quot;&gt;this table&lt;/a&gt; to be helpful. Although I will say that specs aren&#39;t everything. It&#39;s just harder to quantify &amp;quot;feel&amp;quot;.&lt;/p&gt;
&lt;p&gt;The website good e-Reader has &lt;a href=&quot;https://goodereader.com/blog/category/reviews&quot;&gt;a section for reviews of ereaders&lt;/a&gt; that are somewhat honest (the pro move quote is taken from a review by this site) and therefore useful.&lt;/p&gt;
&lt;p&gt;I gotta look more at kobo devices, I think. But yeah, that&#39;s where I&#39;m at with this.&lt;/p&gt;
&lt;h3 id=&quot;p-s-jailbreaking-my-kindle-scribe-denied&quot;&gt;P.S.: Jailbreaking My Kindle Scribe... DENIED&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/Qtk7ERwlIAk?si=Xc-P7p56hvWNJcVG&quot;&gt;This video&lt;/a&gt; made me seriously consider jailbreaking my Kindle Scribe. I coudln&#39;t use the &lt;a href=&quot;https://kindlemodding.org/jailbreaking/WinterBreak/&quot;&gt;WinterBreak&lt;/a&gt; jailbreak option described there, but the &lt;a href=&quot;https://kindlemodding.org/jailbreaking/AdBreak/&quot;&gt;AdBreak&lt;/a&gt; option should&#39;ve worked. Sadly, my device managed to update itself when I was still fiddling around with things today, so I am unable to jailbreak the device at this moment.&lt;/p&gt;
&lt;p&gt;My biggest gripe with the Kindle Scribe was honestly its size and weight. I didn&#39;t want to use it. I also had the desire to leave the Kindle ecosystem as well so not letting me free the device from Amazon&#39;s grip, makes me want to leave this ecosystem even more.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Is this how you write it? Or is it eReader? &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        An Update On Finding A New E-reader

        https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1519 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/24/dailydogo1519/" />
      <updated>2026-01-23T22:28:46Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/24/dailydogo1519/</id>
      <content type="html">&lt;p&gt;DailyDogo 1519 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking straight into the camera next to a door.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1ac386c42d0fc606c5d9a5c20bff2941.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1519 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1518 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/22/dailydogo1518/" />
      <updated>2026-01-22T21:01:56Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/22/dailydogo1518/</id>
      <content type="html">&lt;p&gt;DailyDogo 1518 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping belly up under a curtain next to a balcony door. There is a pink dog toy next to her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e3e3113eaee49a744c6943e6adaeeb24.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1518 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1517 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/21/dailydogo1517/" />
      <updated>2026-01-21T21:08:52Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/21/dailydogo1517/</id>
      <content type="html">&lt;p&gt;DailyDogo 1517 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sniffing a tree in a snowy urban landscape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/1b1ea28d9b6b229ea779d2a514557dd1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1517 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Is There A Reading Crisis



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/" />
      <updated>2026-01-21T14:47:09Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-22 - Noticed I had somehow managed to neither link to the source of my excerpts, nor to some reading crisis sources themselves. Fixed. I also fixed the &amp;quot;elegant argument&amp;quot; excerpt (it had a footnote marker and didn&#39;t itself quote the movie&#39;s lines. AND LATER: fixed the example video link as it was broken. Ugh.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Some people think there is a reading crisis (&lt;a href=&quot;https://youtu.be/0BwRauAB6Zc&quot;&gt;example video&lt;/a&gt;, &lt;a href=&quot;https://www.theatlantic.com/magazine/archive/2024/11/the-elite-college-students-who-cant-read-books/679945/&quot;&gt;example article&lt;/a&gt;) but some people don&#39;t seem to think so. One who doesn&#39;t think so is Adam Mastroianni, the experimental psychologist, behind the Experimental History &lt;a href=&quot;https://leavesubstack.com&quot;&gt;Substack&lt;/a&gt; newsletter thinks &lt;a href=&quot;https://www.experimental-history.com/p/text-is-king&quot;&gt;the reading crisis is overblown&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am skeptical of this thesis. I used to study claims like these for a living, so I know that the mind is primed to believe narratives of decline. We have a much lower standard of evidence for “bad thing go up” than we do for “bad thing go down”.
[…]
The actual data on reading isn’t as apocalyptic as the headlines imply. Gallup surveys suggest that some mega-readers (11+ books per year) have become moderate readers (1-5 books per year), but they don’t find any other major trends over the past three decades[.]
[...]
Other surveys document similarly moderate declines. For instance, data from the National Endowment for the Arts finds a slight decrease in reading over the past decade[.]
[…]
These are declines, no doubt. But if you look closely at the reading time data, you’ll notice that the dip between 2003 and 2011 is about twice the size of the dip between 2011 and 2023. In fact, the only meaningful changes happen in 2009 and 2015. I’d say we have two effects here: a larger internet effect and a smaller smartphone effect, neither of which is huge. If the data is right, the best anti-reading intervention is not a 5G-enabled iPhone circa 2023, but a broadband-enabled iMac circa 2009.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Apart from the data showing less of a decline than I would&#39;ve guessed (these are american numbers; for Germany I managed to find a decline of 5 minutes over 10 years (&lt;a href=&quot;https://www.tagesschau.de/inland/gesellschaft/buchmesse-lesezeit-reduzierung-100.html&quot;&gt;source&lt;/a&gt;)). He also goes into theoretical reasons that totally losing literacy is not very likely:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think there is a deep truth here: human desires are complex and multidimensional, and this makes them both hard to quench and hard to hack. That tinge of discontent that haunts even the happiest people, that bottomless hunger for more even among plenty—those are evolutionary defense mechanisms. If we were easier to please, we wouldn’t have made it this far. We would have gorged ourselves to death as soon as we figured out how to cultivate sugarcane.
[...]
All serious intellectual work happens on the page, and we shouldn’t pretend otherwise. If you want to contribute to the world of ideas, if you want to entertain and manipulate complex thoughts, you have to read and write.
[…]
That’s why there’s no replacement for text, and there never will be. Thoughts that can survive being written into words are on average truer than thoughts that never leave the mind. You know how you can find a leak in a tire by squirting dish soap on it and then looking for where the bubbles form? Writing is like squirting dish soap on an idea: it makes the holes obvious.
[…]
I met an audio editor named Julia Barton, who was writing a book about the history of radio. I thought that was funny—shouldn’t the history of radio be told as a podcast?No, she said, because in the long run, books are all that matter.
[…]
At the center of every long-lived movement, you will always find a book. Every major religion has its holy text, of course, but there is also no communism without the Communist Manifesto, no environmentalism without Silent Spring, no American revolution without Common Sense. This remains true even in our supposed post-literate meltdown—just look at Abundance, which inspired the creation of a Congressional caucus. That happened not because of Abundance the Podcast or Abundance the 7-Part YouTube Series, but because of Abundance the book.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He makes great points about the power of the written word and why a minuscule to moderate decline in reading is nothing too worrying, actually.&lt;/p&gt;
&lt;p&gt;I found this argument very elegant:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A somewhat diminished readership can somewhat diminish the power of text in culture, but it’s a mistake to think that words only exercise influence over you when you behold those words firsthand. I’m reminded of Meryl Streep’s monologue in The Devil Wears Prada, when Anne Hathaway scoffs at two seemingly identical belts and Streep schools her:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;...it’s sort of comical how you think that you’ve made a choice that exempts you from the fashion industry when, in fact, you’re wearing a sweater that was selected for you by the people in this room.
What’s true in the world of fashion is also true in the world of ideas. Being ignorant of the forces shaping society does not exempt you from their influence—it places you at their mercy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Finally he has gripes with the distinction between oral and literate cultures:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Most of the differences between oral and literate cultures are actually differences between non-recorded and recorded cultures. And even if our culture has become slightly less literate, it has become far more recorded.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this all rings true. But I can also tell by looking at my own reading situation that I am personally at a cross roads and have actually read less and less over time (especially books).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; So I will probably continue to share - maybe somewhat alarmist - videos and texts about a reading crisis that maybe actually doesn&#39;t exist. Because it helps me to get back into reading. Apologies.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This is in part directly corelated to not having a lot of unstructured time anymore and have less need to read since finishing my master&#39;s degree. There are ups and downs but the trend is to read less and less. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Is There A Reading Crisis

        https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub - Reading



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/21/hub-reading/" />
      <updated>2026-01-21T14:44:48Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/21/hub-reading/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-27 - Added a couple of links&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;The topic of reading is very often on my mind. Because I love it and I do it relatively seldom.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/is-there-a-reading-crisis/&quot;&gt;Is There A Reading Crisis&lt;/a&gt; - seems like there isn&#39;t, statistically speaking (but personally I am certainly experiencing one)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/27/the-post-literate-society/&quot;&gt;The Post-Literate Society&lt;/a&gt; - or maybe there is and this other article is kind of only saying &amp;quot;not &lt;em&gt;everyone&lt;/em&gt; will post-literate&amp;quot;. But does that make the argument wrong?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also wrote about it here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#4.%20I%20Want%20To%20Start%20Reading%20Again#4.%20I%20Want%20To%20Start%20Reading%20Again&quot;&gt;Recent Thoughts On Media&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And I researched and picked an E-Reader with the help of people on Mastodon!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/hub-reading/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/an-update-on-finding-a-new-e-reader/&quot;&gt;An Update On Finding A New E-reader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/24/i-picked-an-e-reader/&quot;&gt;I Picked An E-Reader&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;A Kobo Libra Color In White. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/hub-reading/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Hub - Reading

        https://blog.martin-haehnel.de/2026/01/21/hub-reading/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Maintenance Culture And Honor Culture



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/" />
      <updated>2026-01-21T08:17:25Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/</id>
      <content type="html">&lt;p&gt;I very interesting article came my way through mastodon the other day: &lt;a href=&quot;https://deadsimpletech.com/blog/the_problem_is_culture&quot;&gt;The problem is culture&lt;/a&gt; by Iris Meredith. This post is itself a reply to &lt;a href=&quot;https://newsletter.danhon.com/archive/s21e03-the-problem-is-defining-the-problem-the/&quot;&gt;a reply&lt;/a&gt; to [another post](My week with opencode) she did. But it basically stands on its own. A couple of excerpts I wanted to highlight:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This distinction is most in evidence in the heroes that our two distinct cultures choose: the people that we believe worthy of emulation and praise and the behaviours and achievements that they exhibit. The technological culture tends to praise risk-takers, iconoclasts and people who exhibit cunning and cleverness to build new things, disrupt old things and usually become rich in the process. Example figures might be people like Steve Jobs, Marc Andreessen and, unfortunately, Elon Musk[...]. &lt;strong&gt;The key virtues being expressed tend to be novelty, independence, ambition, a bias towards action and building something rather than nothing.&lt;/strong&gt; The key is to throw time, energy and resources into creating something new and brilliant that changes the world, no matter how many lives or anything else are thrown away in the process. &lt;strong&gt;This is, in short, an honour culture&lt;/strong&gt;, where engineers compete for glory on the field of open-source software, aiming to be elevated in the eyes of their peers and the industry.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Our heroes, by and large, are maintainers, people who quietly did the work of keeping alive the things our predecessors built that were valuable and improving on them when needed.&lt;/strong&gt; They&#39;re also whistleblowers and dissidents, people who held the line on the fact that what someone else did was wrong and dangerous and would not be silent about it, often at the cost of their careers or even lives. In contrast to the honour culture of tech, our culture is heavily influenced by the mediaeval church and at times can be almost monastic in nature: our task is to contribute to the long work of salvation, which no one person will ever complete. Individual heroism is thus less important than piety and the willingness to suffer for our principles, and while tech culture encourages you to make a name for yourself, engineering culture encourages you to work, quietly and diligently, for your salvation and for the salvation of the world.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this distinction is pretty great. It is an oversimplification and a little fanciful at times, but it is &lt;a href=&quot;https://en.wikipedia.org/wiki/Map%E2%80%93territory_relation&quot;&gt;a map (not the territory)&lt;/a&gt; in the most positive sense of the concept: It lets us express something about the current discourse that would otherwise be hard to tease out without making this kind of broad distinction.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; The article is concerned to explain why LLMs don&#39;t make sense to engineering culture people. And why tech culture is predominantly male. Lot&#39;s of meat on that bone, for sure and therefore worth a read.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I would say there are &lt;em&gt;a lot&lt;/em&gt; of non-techie tech people in this so-called tech culture, at least. Tech culture wouldn&#39;t be possible without them (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/&quot;&gt;see also&lt;/a&gt;). The discourse on f.x. Mastodon is full of them. I would count myself as one of them. However I also don&#39;t think that using agents is an exclusive tech culture activity (read: disruptive, honor-bound, uncaring). I am using Open AI&#39;s Codex as a helper to work with a few different legacy code bases. Fixing bugs, adding tests, doing refactorings, adding features (that, too). It does work. It helps me keeping up with the pressure of hitting goals/deadlines/estimates/hours sold to the customer (until it doesn&#39;t, of course but that&#39;s always the case and I may as well go back to pre-agent-times with out too much trouble). What you can&#39;t ever skip is the &lt;a href=&quot;https://pages.cs.wisc.edu/~remzi/Naur.pdf&quot;&gt;theory building&lt;/a&gt; (PDF) aspect. Anyway. The devil lies in the details as we all know. And I do think that this destinction between honor culture and maintenance culture - or tech culture and engineering culture - very useful, even if I have my quibbles with certain generalizations. But then again the concept of culture itself can&#39;t help but be imprecise. It&#39;s fine. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Maintenance Culture And Honor Culture

        https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1516 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/20/dailydogo1516/" />
      <updated>2026-01-20T20:05:17Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/20/dailydogo1516/</id>
      <content type="html">&lt;p&gt;DailyDogo 1516 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is standing in a snowy, urban environment. In the background you faintly see some northern lights.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/e7a84ea18d6c98ae81985c782df62477.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1516 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1515 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/19/dailydogo1515/" />
      <updated>2026-01-19T21:31:12Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/19/dailydogo1515/</id>
      <content type="html">&lt;p&gt;DailyDogo 1515 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan bathing in the snow next to a road.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/c359aadc6370ff2d875c15044e8da382.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1515 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1514 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/18/dailydogo1514/" />
      <updated>2026-01-18T21:40:12Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/18/dailydogo1514/</id>
      <content type="html">&lt;p&gt;DailyDogo 1514 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching happily into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/02bbae1124d1fb9bb4ccee3521e42b07.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1514 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Recent Thoughts On Media



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/" />
      <updated>2026-01-18T19:34:35Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/</id>
      <content type="html">&lt;p&gt;&amp;quot;Media&amp;quot; is kind of a terrible term as it is so unspecific. But here&#39;s what I&#39;ve noticed recently:&lt;/p&gt;
&lt;h3 id=&quot;1-i-want-to-own-more-of-the-media-i-care-about&quot;&gt;1. I Want To Own More Of The Media I Care About&lt;/h3&gt;
&lt;p&gt;For the moment this mostly consists of music - as I am neither a regular TV shows watcher nor big into movies - but I actually recently bought an external drive to let me rip DVDs/Blue Rays and plan to use it on my also recently bought DVDs/Blue Rays of the Gone Fishing program (which I adore and which is not available in other forms in my market).&lt;/p&gt;
&lt;p&gt;In any case, I feel that music streaming services have killed my interest in music and I basically have stopped listening to music as background noise for working, reading, walking, whatever. I very often go for YouTube in the background (&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/&quot;&gt;most recently described in my yearly review&lt;/a&gt;) or listen to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/&quot;&gt;Endel&lt;/a&gt; (a soundscape app), but I want to at least reintroduce music into my life, as I noticed in my experimentation with &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/&quot;&gt;Jellyfin&lt;/a&gt; that listening to the albums I love is a nice change of pace when it comes to music listening.&lt;/p&gt;
&lt;h3 id=&quot;2-music-listening-observations&quot;&gt;2. Music Listening Observations&lt;/h3&gt;
&lt;p&gt;This - the fact that music streaming has killed my interest in music - is relatively surprising to me, because there was a time, where I really enjoyed the novelty streaming music services brought to my ears: I think it might be that I don&#39;t enjoy novelty in my music as much as I have gotten older, or it could just be a result of overexposure: Too much novelty drowned out the pleasure of relistening (and rediscovering) an old gem from an album I love, for example.&lt;/p&gt;
&lt;p&gt;Another aspect of this is that I tend(ed?) to be a person listening to songs more than to albums. There were albums I listened to regularly, sure, but my main engagement with music was through playlists of individual tracks. The streaming service I am using - the terrible YouTube Music - makes playlist management extremely unpleasant. I don&#39;t know if it&#39;s on purpose or what, but it leads to &amp;quot;just put something on&amp;quot; behavior instead of my past MO of curating playlists for certain moods. With my own music library in Jellyfin on the other hand, I tend to prefer full album listens. I think that makes sense that I would buy the albums that I really like vs. the individual songs that I really like as that looks untidy and incomplete in my library and therefore fosters an album focused listening approach. However it has lead to me not creating many playlists so far as buying music just for the sake of it is prohibitively expensive. Even at ~1 € per track or ~10€ an album I can maybe afford to invest ~20€ per month.&lt;/p&gt;
&lt;p&gt;I don&#39;t know yet what to do about this, as I am unwilling to invest into another streaming service just for better playlist management (Something from Europe or, sigh, Apple Music).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;To me the whole thing is at least in part motivated by ethics, so I have reservations about using piracy to backfill my library.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;3-social-media-is-destroying-my-sense-of-self&quot;&gt;3. Social Media Is Destroying My Sense Of Self&lt;/h3&gt;
&lt;p&gt;I like scrolling through social media from time to time. Seeing a meme, an interesting observation, a slice of life post, an interesting link to something I didn&#39;t know I was interested in is great low-barrier and low-stakes fun. Social media - for me that&#39;s mostly mastodon and blogs - at it&#39;s best is an alternate or addative world(-part), a different space in which people show off their talents, develop new ideas, share their experiences and let us glimpse into what environments they physically live in (which is fun because we are so far apart, but then connected at the same time, thanks to the internet). It&#39;s delightful, (mostly) peaceful, kind and creatively invigorating. At times it even manages to make me question my own beliefs and values in a good way.&lt;/p&gt;
&lt;p&gt;The problem is that I do the scrolling too often and I see much more of the things I do not enjoy whatsoever: Namely pseudo-intellectual discourse, reification of society in social media. As if being angry/sarcastic/informed online is the same as taking part in society... I mean, maybe it is (to an extent) but it is less so than one could surmise by the way social media looks and feels online sometimes. Just generally being &amp;quot;overinformed&amp;quot; is another terrible trait: As terrible as ICE raids are in the US of A, it only marginally impacts me here. That doesn&#39;t mean that I condone any of this, but I literally can&#39;t do anything about it either. I do feel bad for all kinds of stuff.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; But that things are generally bad in the world is not the point of this section. It is related, yes. But the point I&#39;m trying to make here is how I perceive the world through social media. In that sense it asks questions about the terms &amp;quot;world&amp;quot; and &amp;quot;self&amp;quot; and how media (or mediators, if spoken like a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Latour&lt;/a&gt;ian) present what we might think of as our self and the world we are living in.&lt;/p&gt;
&lt;p&gt;On a basic level seeing murders and other crimes being committed by state&#39;s workers on video (or whatever the flavor of shocking/trauma inducing content people decide to share this week) really fucks up my sense of security. The ever increasing spiral of &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/&quot;&gt;purity-based argumentation&lt;/a&gt; - my name for the idea that you either follow all the rules (of, for example, LLM (non)-use) and therefore behave ethically or you are the worst person on earth - fucks up my sense of justice, of good and bad, right or wrong.&lt;/p&gt;
&lt;p&gt;More generally speaking: When talking about social media, we tend to prefer metaphors like bubbles to denote on the one hand a sense of a secured place that keeps certain things out - using filters, blocks, or muting (people, topics, tags) or on a less technical level through community policing - i.e. codes of conduct, moderation, etc. On the other hand bubbles are inherently delicate and what that means in practice is that they do not protect very well from the onslaught of awfulness or even just annoyances: things that I might not agree with in tone but are fine with in general or with slight modifications. It is in part a volume problem:  Overindulging in social media and believing social media is more important than it is are two sides of the same coin. When social media becomes more than a way to add to your actual life, i.e. when your sense of self is mostly felt when engaging online, then I think things are out of whack. And I think that somehow happened to me, somewhat.&lt;/p&gt;
&lt;p&gt;Now, if you&#39;d look through my social media posts, this acute feeling is not obviously reflected in my posts, per se. Maybe sometimes, like in the way where a post resonates with me, but instead of writing about it in a blog post or my own thread, I become an accidental reply guy. But also in the way I &lt;em&gt;could&lt;/em&gt; respond to certain posts, how I chose to read and interpret them, how my mind reacts emotionally to them. I find this state of mind where I only use the &amp;quot;fast thinking system&amp;quot; to make snap judgements about people, their thoughts, their struggles and so on to be a more primitive form of being. Being too long on social media turns me into a goblin to the point where I could start to believe that I am actually a goblin as well. Being too online also makes me lose my voice and makes it hard for me to steer my life. As corny as it may sound, it make it harder to listen to my heart this way.&lt;/p&gt;
&lt;p&gt;Social media is somewhat important to me because I don&#39;t have a lot of friends and thrive being by myself. I feel like I&#39;m &amp;quot;full up&amp;quot; with family and work interactions alone. I don&#39;t crave much contact beyond that. Maybe once in a while I actually do want to say something nice/snarky/insightful/whatever to someone else. Social media has been a great outlet for that.&lt;/p&gt;
&lt;p&gt;As with most things, I don&#39;t have all the answers, but I do know that there are ways in which I can relate to social media that is more wholesome than what I do now. I think on the &amp;quot;publishing&amp;quot; side going (mostly) through the blog is a good idea, slowing down and recontextualizing my impetus to just be the reply goblin, turning it into energy to produce my own thoughts. And on the consuming side, I think the answer is simply &amp;quot;do less&amp;quot;. I don&#39;t think that the people I follow are bad follows at all, but I have to limit the influence the medium has itself over me and my sense of me.&lt;/p&gt;
&lt;h3 id=&quot;4-i-want-to-start-reading-again&quot;&gt;4. I Want To Start Reading Again&lt;/h3&gt;
&lt;p&gt;Reading is important. And I want to do it more. The story of &amp;quot;I was reading a lot throughout all my life, but somehow lost the interest to do so...&amp;quot; is an all too familiar tale. With the state of the world such as it is, I feel like that I am not reading is in part also the result of wanting to books to do more than entertain. I found &lt;a href=&quot;https://youtu.be/0BwRauAB6Zc&quot;&gt;this YouTube video&lt;/a&gt; - although meandering - made an interesting point in this regard. I am paraphrasing here, but they basically said: All people, but especially men in particular read less, because the feel like they need to be productive. Reading for fun feels bad. When it comes to novels in particular this quote was very good, I thought:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Jake: I don&#39;t think young men especially want to have a good time. They want to die in a war, you know? Or maybe I&#39;m speaking generally, but I think that there&#39;s not a lot of social value from reading a book unless it is like, um, you&#39;re conquering something like, uh, we were just talking about guys who haven&#39;t touched a book since high school wanting to read Ulysses or Moby Dick or something because it is or Blood Meridian now. That&#39;s the trend.&lt;/p&gt;
&lt;p&gt;Jared: I kind of want to tell a guy who really liked Red Dead Redemption 2 that if you liked that, like maybe, you know, reading a western novel would be the kind of thing that you&#39;re into. But I don&#39;t know, it just doesn&#39;t even come up in their minds.&lt;/p&gt;
&lt;p&gt;Jake: But you tell them, &amp;quot;Hey, you should read a western and they go, what is the best western? What is the hardest western? What is the most brutal western?&amp;quot; And they say, &amp;quot;I&#39;m going to Read Blood Meridian.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And although I tend to prefer non-fiction over fiction I totally get it and can see myself at least partly in it. I also get and see now everywhere I look this tendency and need to feel productive even in the things that are supposed to be just for me. Like in the way the productivity person Cal Newport argues for why reading is important in this video:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why bother reading so many books? Well, I am convinced that if you do intellectual work, so if one of the primary ways you make money is by creating value with your Brain alchemizing dollars out of the stuff of thoughts. Reading is critical to you. Why? Because reading is to your brain what exercise is to your body.&lt;/p&gt;
&lt;p&gt;To work with books means you&#39;re grappling with complex ideas, trying to make connections between different types of theories or ways of seeing the world. It helps your ability to empathetically put yourself into other people&#39;s shoes and understand life through other people&#39;s eyes. All of this is critical; it&#39;s calisthenics for the gray matter up here. It is a huge competitive advantage. If you work in knowledge work, you need to work out your brain. Reading is one of the best workouts that we know about.&lt;/p&gt;
&lt;p&gt;I mean, I find it to be the degree to which we obsess so much about physical health, and we get into minutia about different exercise routines or supplements, or exactly how you eat. And yet, we barely think at all about how to keep our brain operating at its full capacity, even though for most of us. We depend way more for our livelihood on our brain than we do these days on our body. So, I care about getting the most out of our brain. Reading is a fantastic way to do this. All right, five books a month, five ways to help you get there.[...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And as motivating as ideas on how to read more can be, I feel they ultimately miss the point that reading can also just be a part of your life and doesn&#39;t need to be (thought of as) an end to other means.&lt;/p&gt;
&lt;p&gt;So yeah, I&#39;d like to read again. Most of my book consumption has been through audio books the last few years and a kind of large amount of the books I consumed was ultimately about being more productive. I think that reading more is about changing my approach to how I chose to spend my time and to spend it more in tune with my authentic (non-goblin) self.&lt;/p&gt;
&lt;h3 id=&quot;5-towards-a-personal-media-landscape-that-i-like&quot;&gt;5. Towards A Personal Media Landscape That I Like&lt;/h3&gt;
&lt;p&gt;Finally all of these thoughts have started to coagulate into a somewhat new approach towards media. I want to be more mindful and spend my time more with my nose in books. I want to spend less time scrolling social media (without abandoning it completely). I want to continue my expedition into music. And I want to own more of the media I like.&lt;/p&gt;
&lt;p&gt;All in all, I think I want less algorithms in my life, less dependencies on platforms and more &lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html&quot;&gt;low-tech&lt;/a&gt; (like I am investing in a new eReader, because the one I have - the Kindle Scribe - is just so god- damn heavy). Less fast food thoughts and less swimming along the sewage pipe that is a life in late-stage-capitalism. I realize that being able to even attempt to rework my life in this way drips of privilege in some ways, but I think that being able to do something like this and (maybe) document my thoughts around this topic could still be valuable.&lt;/p&gt;
&lt;p&gt;Do I wonder if what I attempt to do here is futile in the sense that society won&#39;t change and reorganizing my media landscape is mostly an excentric hobby? Yeah. But even it isn&#39;t something that could become the norm: Because owning (most) of your media is too expensive, because the grip of social media on us - even the neutral-good kind like Mastodon - is so strong, because listening to music understood as albums seems to be antiquated. I hope that thinking through alternatives and trying to build a life on these ideas and practices still could mean something.&lt;/p&gt;
&lt;p&gt;Finally, why do I even care about the aspect of &amp;quot;can it scale&amp;quot; in this particular instance? I don&#39;t necessarily think about that when describing my programming or when I talk about theory in general? I think the reason is that observing the &amp;quot;normal&amp;quot; life but living &amp;quot;differently&amp;quot; can quickly lead to the &amp;quot;holier than though&amp;quot; attitude that I so despise. But anyways, this meandering blog post has become quite long and it is neither the best, nor my last word on any of these topics. But it&#39;s a starting point.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;As far as new expenses go that are somewhat related to this topic: My vps is around ~30€ a month and this new &amp;quot;own your media&amp;quot; hobby is ~20€ a month + whatever burst costs might be coming up (i.e. I bought music worth of 50€ when I started my Jellyfin journey) &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Side note: It feels difficult to criticize LLMs for copyright infringement but then pirate works of art. Only exception: If you (an actual human person) can&#39;t afford taking part in the world of art. In that case fuck the system, obviously. But I personally make enough money (at this moment in time) that I should buy the music (et. al.) that I like. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;And just to spell out: Things that are happening like the tariffs have much bigger impact here in Europe than ICE raids. And the general trend towards authoritarianism is worrysome, so you can&#39;t turn a blind eye to it completely. Obviously. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Recent Thoughts On Media

        https://blog.martin-haehnel.de/2026/01/17/recent-thoughts-on-media/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1513 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/17/dailydogo1513/" />
      <updated>2026-01-17T20:28:54Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/17/dailydogo1513/</id>
      <content type="html">&lt;p&gt;DailyDogo 1513 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running through fresh snow towards  the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/33772d8170f7d6211e56e748c1fcc5f3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1513 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1512 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/17/dailydogo1512/" />
      <updated>2026-01-16T22:10:34Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/17/dailydogo1512/</id>
      <content type="html">&lt;p&gt;DailyDogo 1512 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing, her head is in the snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/6e2e0049046bbed07f49e7317e24f9d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1512 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1511 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/15/dailydogo1511/" />
      <updated>2026-01-15T21:41:52Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/15/dailydogo1511/</id>
      <content type="html">&lt;p&gt;DailyDogo 1511 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan waiting at the door and smiling at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7c42a7226fef080c144d50f7f7358a9b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1511 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1510 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/14/dailydogo1510/" />
      <updated>2026-01-14T21:01:08Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/14/dailydogo1510/</id>
      <content type="html">&lt;p&gt;DailyDogo 1510 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan begging to get a treat. It&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/beda1a9f26aefe9a04b304c4e902b2bc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1510 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1509 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/13/dailydogo1509/" />
      <updated>2026-01-13T21:19:38Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/13/dailydogo1509/</id>
      <content type="html">&lt;p&gt;DailyDogo 1509 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping on her back, partially obscured under a white curtain.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/04e053861b8552d26b53ba4156013899.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1509 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1508 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/12/dailydogo1508/" />
      <updated>2026-01-12T17:09:11Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/12/dailydogo1508/</id>
      <content type="html">&lt;p&gt;DailyDogo 1508 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in fron of a balcony door, next to a dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/a21c69c06433ff35dc06b4de4bfa83bc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1508 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1507 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/11/dailydogo1507/" />
      <updated>2026-01-11T21:01:31Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/11/dailydogo1507/</id>
      <content type="html">&lt;p&gt;DailyDogo 1507 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and smiling into the camera. There are a few dog toys in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7479fca5e976fd1e316e56341d32f667.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1507 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1506 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/10/dailydogo1506/" />
      <updated>2026-01-10T21:49:50Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/10/dailydogo1506/</id>
      <content type="html">&lt;p&gt;DailyDogo 1506 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed, surrounded by toys.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/df55c6a2f4d6823423ddc3212d9c5ca1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1506 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1505 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/09/dailydogo1505/" />
      <updated>2026-01-09T21:54:37Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/09/dailydogo1505/</id>
      <content type="html">&lt;p&gt;DailyDogo 1505 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a bed staring into the emptiness of space.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/d2d371df3fd6e6ff3bfd19f22f6b53fa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1505 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1504 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/08/dailydogo1504/" />
      <updated>2026-01-08T19:33:26Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/08/dailydogo1504/</id>
      <content type="html">&lt;p&gt;DailyDogo 1504 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan next to a home door. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/08f9cbc32cb9d46fcb120098f0ff0dce.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1504 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1503 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/07/dailydogo1503/" />
      <updated>2026-01-07T20:36:59Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/07/dailydogo1503/</id>
      <content type="html">&lt;p&gt;DailyDogo 1503 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan having a dog toy in her mouth and wrapped around her neck. She looks ready to play.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/07dd3a2d647b2fc83fcbf0a3365b7282.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1503 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1502 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/06/dailydogo1502/" />
      <updated>2026-01-06T18:58:12Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/06/dailydogo1502/</id>
      <content type="html">&lt;p&gt;DailyDogo 1502 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing in a snowy urban landscape. (Context not in the photo: It was frigid today. -21 degrees centigrade at times.)&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/10bd2743271181a609c63493a90bd5aa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1502 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub - SelfHosting



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/06/hub-selfhosting/" />
      <updated>2026-01-06T14:59:27Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/06/hub-selfhosting/</id>
      <content type="html">&lt;p&gt;In this &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Hub&lt;/a&gt; I am collecting posts pertaining to my move to a self-hosted setup in 2025 and my ongoing maintenance of the server.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/&quot;&gt;Where To Go From Here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/&quot;&gt;Another Try &amp;lpar;at Self Hosting&amp;rpar;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/&quot;&gt;Rough Roadmap Of Moving The Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/&quot;&gt;The Move Of The Blog Is Happening Now&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/&quot;&gt;Zero Downtime Deploys&amp;comma; At Last&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also wrote about it as part of my &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/&quot;&gt;2025 - Year In Review&lt;/a&gt; post.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Hub - SelfHosting

        https://blog.martin-haehnel.de/2026/01/06/hub-selfhosting/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Trying Out Jellyfin



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/" />
      <updated>2026-01-06T14:56:43Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-06 - fixed a link, fixed a duplicated word&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;a href=&quot;https://jellyfin.org&quot;&gt;Jellyfin&lt;/a&gt; is a full-fledged media server for all kinds of media. &amp;quot;[It] enables you to collect, manage, and stream your media&amp;quot; according to their website. But what the hell does that even mean?&lt;/p&gt;
&lt;p&gt;Well, maintaining a Jellyfin instance allows you to have a centralized access point for all your music, movies, tv shows, etc. that you own. It can also do photos and home videos, but I am only using it (or intent to use it) for non-personal media. So music, movies and shows (for now). Having everything in one spot and then streaming it from there allows you to follow a &lt;a href=&quot;https://en.wikipedia.org/wiki/Single_source_of_truth&quot;&gt;single source of truth&lt;/a&gt; approach to your media: All the files are there and all the clean metadata with it as well: You stream from this media server only. So decay of data and data loss e.g. from moving from one device to the next should be minimal.&lt;/p&gt;
&lt;p&gt;The way you access your media from this server is by using a client. Jellyfin itself provides a client, but there are others. One that caught my eye was &lt;a href=&quot;https://tilosoftware.io/manet/&quot;&gt;manet&lt;/a&gt; that seems very nice.&lt;/p&gt;
&lt;p&gt;If you have a server on the internet (&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/hub-selfhosting/&quot;&gt;like I have nowadays&lt;/a&gt;) and you use &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt; (like I do, although not without some reservations... &lt;a href=&quot;https://github.com/coollabsio/coolify/issues/5726&quot;&gt;I mean seriously&lt;/a&gt;?!), installing Jellyfin is super easy.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=k5n9I407yks&quot;&gt;This is a four minute video that shows how it&#39;s done.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However in order to use it, you&#39;ll have to change the compose file that it comes with. The person making that video only mentioned it (and gave incomplete advice in the comments) but didn&#39;t really explain how to set it up.&lt;/p&gt;
&lt;p&gt;You see, Jellyfin expects you to upload files to your server on your own. It doesn&#39;t offer upload capabilities. But since Coolify is Docker based and the Jellyfin that is so easy to install is &lt;a href=&quot;https://docs.docker.com/compose/&quot;&gt;docker compose&lt;/a&gt; based, AND Coolify&#39;s own files in &lt;code&gt;/data/coolify&lt;/code&gt; are root-owned, you&#39;ll have to use what is called a volume (bind) mount and point to a location outside coolify&#39;s file tree. If you&#39;ve followed the video from above, around 2:38 you&#39;ll see how he opens up the docker-compose file in the Coolify web ui and talks about changes that have to be made.&lt;/p&gt;
&lt;p&gt;Here&#39;s what I&#39;ll add to make Jellyfin actually work on servers (especially if your standard vps user isn&#39;t root which it shouldn&#39;t be):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Jellyfin has a concept called a &lt;a href=&quot;https://jellyfin.org/docs/general/server/libraries&quot;&gt;library&lt;/a&gt; that hold different kinds of media types. The Coolify standard install only includes a predefined setup for tv shows and movies. But what if you want one for music? Well, you just create one. Same with e.g. photos or whatever: You can create new volume mounts (see below) for all library types and make it so that Jellyfin can access them.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;As I said, the initial setup is kind of useless, as you can&#39;t access the docker-volumes from the host directly (I mean you &lt;em&gt;can&lt;/em&gt;, but it&#39;d be a pain). So we&#39;ll instead tell Coolify/docker that it is supposed to make a specific folder on the host available inside Jellyfin&#39;s container. Let&#39;s say we setup &lt;code&gt;/srv/media/music&lt;/code&gt; on the actual server.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; We can change the config in such a way that &lt;code&gt;/data/music&lt;/code&gt; inside the container shows the contents of &lt;code&gt;/srv/media/music&lt;/code&gt; on the server. We&#39;ll also need to make sure that our normal user can write to &lt;code&gt;/srv/media/music&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Finally we can use something like &lt;a href=&quot;https://cyberduck.io&quot;&gt;Cyberduck&lt;/a&gt; to move files from our local machine to &lt;code&gt;/srv/media&lt;/code&gt; using sftp.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Alright. Let&#39;s start with the docker compose file. Here&#39;s how the &lt;code&gt;volumes&lt;/code&gt; portion my file looks now:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  jellyfin:
# ...
    volumes:
      - &#39;jellyfin-config:/config&#39;
      - &#39;/srv/media/tvshows:/data/tvshows&#39;
      - &#39;/srv/media/movies:/data/movies&#39;
      - &#39;/srv/media/music:/data/music&#39;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then I added the directories on the actual server:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$ ssh vps
$ # ...
$ sudo mkdir -p /srv/media
$ sudo chown -R user:user /srv/media # user your actual login user here
$ cd media
$ mkdir music tvshows movies
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally I restarted/redoployed my Jellyfin instance in Coolify. Et voilà: I can now add a new library using the container path (f.x. &lt;code&gt;/data/music&lt;/code&gt;).&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; If I want to add new albums to my library, I fire up Cyberduck and copy files with it, skipping any files the server already has.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Think of a library as a directory with a certain file/folder structure within. Here&#39;s an &lt;a href=&quot;https://jellyfin.org/docs/general/server/media/music&quot;&gt;example for a music library&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/srv.html&quot;&gt;srv&lt;/a&gt; is meant for &amp;quot;site-specific data which is served by this system. This main purpose of specifying this is so that users may find the location of the data files for particular service. [...]&amp;quot;. I think that fits reasonably well for our use case here. Allthough I opted to name the &amp;quot;service&amp;quot; this data belongs to somewhat agnostically &amp;quot;media&amp;quot;. Don&#39;t use &lt;a href=&quot;https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/media.html&quot;&gt;/media&lt;/a&gt; btw. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Cyberduck is smart about skipping over files that the server already has if you instruct it to do so and is easier to use than rsync. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Don&#39;t worry if you already skipped ahead in the setup wizzard: I did the same. You can add libraries later. You can also add new volume mounts for let&#39;s say books (no idea how good or bad Jellyfin is for books, yet) later. Just follow the template above. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Trying Out Jellyfin

        https://blog.martin-haehnel.de/2026/01/06/trying-out-jellyfin/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1501 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/05/dailydogo1501/" />
      <updated>2026-01-05T20:14:35Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/05/dailydogo1501/</id>
      <content type="html">&lt;p&gt;DailyDogo 1501 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the ground and looking up at the photographer.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/410f56964a901111f31db5abdf32e15d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1501 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          1500 Dogo Pics (And Counting)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/04/1500-dogo-pics-and-counting/" />
      <updated>2026-01-04T19:48:37Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/04/1500-dogo-pics-and-counting/</id>
      <content type="html">&lt;p&gt;Crazy to think how long I have been posting a dog pic for every day that our dog has been with us. Napu - that&#39;s her name btw. - is an amazing dog. She is smart, has absolutely her own mind but also knows when it counts. She likes to play rough with the people she loves and trusts. She is a cautious dog that can be reserved. She is socially talented with other dogs. She doesn&#39;t like to be petted &lt;em&gt;that&lt;/em&gt; much. But she wants to be close. She loves her human mom a lot and will protect her as best she can. She is funny. She is attentive. She loves going for walks with the both of us. She is a great companion and it&#39;s incredible to think that she has been with us for around four and a half freaking years and this point! I love her a lot. It&#39;s my great pleasure to share a daily pic of her (she&#39;s a pretty good sport of being &amp;quot;the model&amp;quot;, btw.). If you ever enjoyed, liked or reposted a DailyDogo: Thank you! Onto the next 1500!&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;In the somewhat unsharp photo, there is a a beared and bespectacled man (me!) sitting on the floor and a dog (napu!). The dog has climbed up the arm of the man and is licking his ear&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/13b92f234bcc70443aeed510522a89a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        1500 Dogo Pics (And Counting)

        https://blog.martin-haehnel.de/2026/01/04/1500-dogo-pics-and-counting/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1500 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/04/dailydogo1500/" />
      <updated>2026-01-04T19:40:03Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/04/dailydogo1500/</id>
      <content type="html">&lt;p&gt;DailyDogo 1500 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan hiding in her favorite corner between the couch and the chair. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7fd55439cf311488e1257efbcbca0e00.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1500 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1499 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/03/dailydogo1499/" />
      <updated>2026-01-03T19:02:35Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/03/dailydogo1499/</id>
      <content type="html">&lt;p&gt;DailyDogo 1499 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to a pile of Christmas lights.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/7123d028ec7f95c78cd5ac9e9333feca.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1499 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1498 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/02/dailydogo1498/" />
      <updated>2026-01-02T21:12:31Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/02/dailydogo1498/</id>
      <content type="html">&lt;p&gt;DailyDogo 1498 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting next to a couch and watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/997639f2479d9f6abb05e4fbeacd1f7a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1498 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          2025 - Year In Review



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/" />
      <updated>2026-01-02T13:13:05Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/</id>
      <content type="html">&lt;h3 id=&quot;health-and-fitness&quot;&gt;Health And Fitness&lt;/h3&gt;
&lt;p&gt;I joined a gym this year and managed to go for 14 weeks in a row - 39 workouts in total - before losing interest, or rather, before burnout hit me. This was mostly in the beginning of the year. I have severely mixed feelings about the whole gym thing. Aspects I liked: getting out of the house and having some me-time. But otherwise I am really not sure. Going to the gym in the morning was hard because my days are bookended by walking the dog and my need for some do-nothing free time. So making it to bed on time so I could get up on time felt akin to a perfectly executed heist in a movie: It rarely worked without tremendous effort. Going in the evening meant not having time to do chores like cooking, and it also meant spending less time with my partner. Not good either.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from the fitness app Hevy showing that I did 39 workouts this year. Most of it was done in January and February with three workouts per week. Starting in March, only did two. The following months, April to June, I only did a workout once in a while. And after that there were no workouts.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2a19d4839bb4c7fae1a3219f6a193a31.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I think what I&#39;ve learned is that I don&#39;t like the gym rat&#39;s ethos. Fitness gurus (i.e., on YouTube) all look and behave weird to me - even the nice ones. And I can&#39;t help but think about this one thing I&#39;ve heard somewhere - I don&#39;t remember where - that taking lifting seriously means being in pain basically all the time, because otherwise your muscles don&#39;t grow. In short, going to the gym was mostly an exercise in doing a thing for 14 weeks and a bit that I actually didn&#39;t want to do.&lt;/p&gt;
&lt;p&gt;I still have the gym membership as we speak - it is up for renewal in January, and the reason I haven&#39;t canceled it yet is because I might want to go for a run. This, the running, was my second attempt to get some more exercise into my life and also, coincidentally, my second attempt to finish the &lt;a href=&quot;https://www.watchto5k.com&quot;&gt;Watch to 5K&lt;/a&gt; workout program. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/01/recap.html&quot;&gt;I failed again just like last year&amp;period;&lt;/a&gt; Nonetheless, I actually do enjoy running and plan to get back on that horse, which is why I think I&#39;m going to keep the gym membership for another year: I live in the somewhat northern city of Oulu (Finland), and even though other people seem to be just fine running around here in snow/wind/ice and freezing temperatures - and I wouldn&#39;t call myself a softie in that regard either: I moved to Finland of my own accord - it&#39;s just a fact that I barely have the right running equipment for this weather. So my calculation is that I could spend the money on winter running gear - at least: pants, jacket, shoes - or pay the ~350 euros per year and have a warm place to run pretty close to where I live. I am definitely deceiving myself a little here, but I barely get out for a run as it is at the moment, and it seems that I&#39;d rather run in the gym on a treadmill than outside at this particular juncture. There is a chance (albeit very little) that I would like to do something with weights again, and so I am keeping my options open here. This might be my last hurrah when it comes to gyms, though.&lt;/p&gt;
&lt;p&gt;I turned 39 this year, so I am very aware that taking care of my health should be a priority. But health is not only physical health, and grinding like a crazy person to make time for 30-60 minutes of running/lifting is a big reason why I didn&#39;t do it as much in the later half of the year. If you have to control your life so goddamn tightly to make room for exercise, then it will inevitably weigh on your mind. I have no good answer to this conundrum yet. Working out from home is not an option, as there is really no space (physical and me-time related) to do so in an authentically enjoyable way.&lt;/p&gt;
&lt;p&gt;I also used &lt;a href=&quot;https://www.loseit.com&quot;&gt;Lose It&lt;/a&gt; to lose some weight. 7 kilos. That ain&#39;t nothing! But this also had non-negligible downsides. Like, I ate a lot of the same stuff simply because it made tracking easier. But eating like that really wasn&#39;t very fun at all. I probably have regained most of the weight in the last quarter of the year, but I don&#39;t really mind, at least right now. Tracking calories is not exactly &amp;quot;hard&amp;quot;, especially if you only track calories (and not also &amp;quot;macros&amp;quot;, i.e., protein, carbs, and fats) and figure out what app others in your country use (as to benefit from other people&#39;s product additions; in Finland that seems to be MyFitnessPal or Lose It). But it not being hard doesn&#39;t mean that it doesn&#39;t introduce friction, and it is definitely just one more thing to remember, to think about, and to make decisions about. It&#39;s not free at all. This non-free-ness is true for everything: health-related or otherwise.&lt;/p&gt;
&lt;p&gt;Even the simplest things take effort and time, and adding even only one more thing like this can mean my house of cards I call &amp;quot;life&amp;quot; may topple. At least it can lead to burnout, because all these little things add up. I think this is the main reason why 2025 has been so exhausting to me: death by a 1000 &amp;quot;(presumably good for me) added habit&amp;quot; cuts (additions).&lt;/p&gt;
&lt;h3 id=&quot;finances&quot;&gt;Finances&lt;/h3&gt;
&lt;p&gt;I am still using &lt;a href=&quot;https://actualbudget.org&quot;&gt;Actual Budget&lt;/a&gt; to keep track of my finances and have been pretty good about keeping track of my expenses. Tracking finances seems to be more and more important to me and helps me keep sane: the type of &amp;quot;envelope budgeting&amp;quot; I&#39;m doing is a good way to categorize expenses without it getting overwhelming. That being said, my priorities are bound to shift next year and in the years beyond, so I&#39;ll probably have to try and free up some money somewhere.&lt;/p&gt;
&lt;p&gt;I am hesitant to go into too much detail here - although I also do think it&#39;s important to talk about money. What I can say is that I am very grateful that I have a job and that I am able to save money but also to give money to causes I care about. I have pared down my subscriptions and rely, if I can, on apps that either offer a more traditional model where you pay for a version of an app (recently &lt;a href=&quot;https://godspeedapp.com/pricing&quot;&gt;Godspeed&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;), buying a lifetime plan (Lose It) of a service, or just living with the ad-infested version (Overcast). This sometimes means more investment up front, and I am not sure if I am once again deceiving myself or not, but it certainly &lt;em&gt;feels&lt;/em&gt; better to not be beholden to too many monthly expenses.&lt;/p&gt;
&lt;p&gt;Let&#39;s see if I can give a rundown of my subscriptions (these are rounded/estimates per month, some of these are paid yearly, some subs that are paid for by my partner are not included, etc.):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Twitch, Patreon and Podcasts (I support ~ 5 people/projects at the moment) - 5 x ~5€ = 25€ per month&lt;/li&gt;
&lt;li&gt;Streamers (Netflix and then others rotated in and out as needed, ~2 active streamers at a time) - 2 x 10€ = 20€ per month&lt;/li&gt;
&lt;li&gt;iCloud - 10€ per month&lt;/li&gt;
&lt;li&gt;Youtube Premium - 27.99 € per month&lt;/li&gt;
&lt;li&gt;Audible - 9.95 € per month&lt;/li&gt;
&lt;li&gt;Gym - ~29 € per month&lt;/li&gt;
&lt;li&gt;Domains (3 domains total) - ~5€ per month&lt;/li&gt;
&lt;li&gt;Duolingo - ~5.50€ per month&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://echofeed.app&quot;&gt;Echofeed&lt;/a&gt; (for posting to &lt;a href=&quot;https://hachyderm.io/@finn_matti&quot;&gt;Mastodon&lt;/a&gt;/&lt;a href=&quot;https://bsky.app/profile/finn-matti.bsky.social&quot;&gt;Bluesky&lt;/a&gt; when a new post is published) - ~2€ per month&lt;/li&gt;
&lt;li&gt;Google Photos - ~2€ per month&lt;/li&gt;
&lt;li&gt;Obsidian Sync - ~4€ per month&lt;/li&gt;
&lt;li&gt;Oura Subscription - ~6€ per month&lt;/li&gt;
&lt;li&gt;Readwise Reader - 7.50€ per month&lt;/li&gt;
&lt;li&gt;Hosting - ~30€ per month (some &lt;a href=&quot;https://www.pikapods.com/&quot;&gt;Pikapods&lt;/a&gt;, some &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/&quot;&gt;self-hosting&lt;/a&gt; at OVH)&lt;/li&gt;
&lt;li&gt;Total: ~183,94€ per month&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the grand scheme of things - meaning my salary and where most of my money is spent - this isn&#39;t &lt;em&gt;that&lt;/em&gt; bad, but it ain&#39;t great. There isn&#39;t much stuff that offers obvious savings either (except maybe for the gym membership, but as I wrote above, I intend to keep this for another year).&lt;/p&gt;
&lt;p&gt;Hosting is another thing that could probably be optimized a lot more, and I could save 5-10 euros (possibly more like 25 if I built my stuff on the laptop). But I intend to move more and more things to this server, and since I run &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt; on it and the builds for that run on the server as well, the burst load is kind of heavy. It is kind of insane though that to achieve a similar experience as I had on Cloudflare, I am now paying 30 euros/month when I paid 0 euros before.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-blog-and-other-projects&quot;&gt;The Blog And Other Projects&lt;/h3&gt;
&lt;p&gt;Since I tried to be much more active this year, the &amp;quot;year of the quarter&amp;quot; (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/&quot;&gt;see my recap here&lt;/a&gt;) I also tried to get more involved in a community.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; This happened to be the &lt;a href=&quot;https://home.omg.lol&quot;&gt;OMG.lol&lt;/a&gt; community and in particular its &amp;quot;chat network&amp;quot; (a bridged IRC/Discord hybrid). It was very fun, and I had a pretty good time for most of my stay.&lt;/p&gt;
&lt;p&gt;I started a little community-focused side project called didyoudoit.lol (an accountability forum) with the help of a community member.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; I even let the awesome &lt;a href=&quot;https://www.andycarolan.com&quot;&gt;Andy Carolan&lt;/a&gt; design a logo for the forum!&lt;/p&gt;
&lt;p&gt;In a series of unfortunate shortcomings of internet communication, I ended my involvement with the community over what I would now call a misunderstanding on the one hand and my increasing overwhelm with the whole &amp;quot;being part of a community&amp;quot; thing (amongst other things that are not this thing) on the other: so &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/&quot;&gt;I withdrew myself from the community&lt;/a&gt; (which regrettably itself sparked hurt feelings). To some I&#39;ve probably taken the wrong lesson from this, but regardless, I am better off admiring (&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html&quot;&gt;or loving&lt;/a&gt;) from a distance, I&#39;m sure of it.&lt;/p&gt;
&lt;p&gt;That being said, it&#39;s probably no coincidence that I have carved out some money to give to charity regularly (having lots of people around you with great values makes you want to try harder), and I am happy when I think about the many meaningful interactions I had over those few months.&lt;/p&gt;
&lt;p&gt;In other news, I &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/&quot;&gt;moved my blog off of Cloudflare&lt;/a&gt;. This was quite the undertaking (which is still ongoing in some ways), but I am happy to not be using them anymore. Another thing that can probably ultimately be traced back to being involved with the OMG.lol community, btw.&lt;/p&gt;
&lt;p&gt;I had some failed starts with a project I&#39;d really like to get going, but it seems that I don&#39;t have the time or energy to really get far into the weeds with other projects without neglecting other parts of my life. Because, of course, the one thing I&#39;d like to do is too involved to do it in one weekend...&lt;/p&gt;
&lt;p&gt;But yeah, I plan to continue working on the blog in a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like Ron Jeffries&lt;/a&gt; style. And even though I didn&#39;t write as much as I maybe would&#39;ve liked, the fact that most of my substantial reflection writing is done on the blog (as opposed to my private notes) makes the blog a very important part of my life, as it combines reflective writing with (not for the job) coding.&lt;/p&gt;
&lt;h3 id=&quot;work-and-llms-ai&quot;&gt;Work (and LLMs/AI)&lt;/h3&gt;
&lt;p&gt;I didn&#39;t write much about work on the blog this year. Or if I did, then indirectly. What really helped this year was reading &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;how the lead dev at Puzzmo uses Claude Code&lt;/a&gt;. Here&#39;s the important point:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To me it seemed that Orta Therox knows a lot and cares a lot - maybe less of doing every aspect of software development by hand - but definitely about the craft in general. And say what you will, but having these perspectives is valuable. I appreciated that he shared chat transcripts and also &lt;a href=&quot;https://github.com/puzzmo-com/xd-crossword-tools/pull/42&quot;&gt;full-blown PRs&lt;/a&gt;. This is the kind of vulnerable writing that I would like to see more of. I have seen a lot of skeptics just dismissing the whole topic and a lot of boosters that don&#39;t care about the craft. But reading this actually made me feel like you can be interested in the craft and still find LLMs and how they are going to influence the thing you care about interesting without sounding like you&#39;re crazy.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I had experimented with different coding agents and &amp;quot;AI&amp;quot; tools throughout the year, mostly finding again and again that they are working well when used in dialogue form, controlling their output relatively strictly. But doing so through the Chat - as agent modes were a little too quick to implement some shit, which really got much better throughout the year, IMHO - disconnected from the code made the process slower than it needed to be. Using ChatGPT Codex, Copilot in VSCode (the PHPStorm version is still lacking in some respects), and Google Gemini-cli in the four or five months or so really helped to unlock the potential of these tools for me, and this in turn helped me work with the legacy code bases I work with at my job.&lt;/p&gt;
&lt;p&gt;Using Codex et al. helped me to rebalance my work situation significantly. I now regularly stay within the estimate/budget, am able to add tests/refactoring as part of a ticket, and stress levels have mostly decreased to a manageable level.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I have lots of empathy for people not wanting to use these tools, and I am exposing myself to their arguments (I guess in an attempt to &lt;a href=&quot;https://en.wikipedia.org/wiki/Straw_man#Steelmanning&quot;&gt;steelman&lt;/a&gt;) every day, but in my opinion, the job is to figure out a way to make these better going forward by engaging with them, as these tools - although we&#39;re most certainly in a bubble - will not go away tomorrow. Another (longer) quote from &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;my Puzzmo commentary&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As far as I&#39;m concerned, &amp;quot;AI&amp;quot; - flawed, yes, of course, I&#39;ll stop saying it now - are sticking around and are going to make a huge difference going forward. A &amp;quot;huge difference&amp;quot; here is meant as a matter of fact. I don&#39;t ascribe positive or negative values directly to huge differences and neither should you. Neither am I liking or disliking the fact that they are here to stay. I do not have crystal ball either to tell what &amp;quot;sticking around&amp;quot; means. Does it mean forever? Does it mean 20 years? 5 years? I&#39;m pretty sure they are still here in a couple of years though. Their importance might rise and then sharply drop (e.g. because nobody can pay for this stuff) or it might plateau or it might continue to eat the world. I don&#39;t know that. And none of these options are in themselves a value judgement. But. We will have to content with them and their influence somewhere in between maybe 5 years and forever.&lt;/p&gt;
&lt;p&gt;In an unpublished article about LLMs&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[H]ere&#39;s my main point: If LLMs are going to stick around then people capable of critical thought and engaging in empathy and seeing the bigger picture ought to engage with LLMs in all dimensions of the concept/tech.&lt;/p&gt;
&lt;p&gt;It is similar to the car industry, to the fossil fuel industry and many others. Leaving these jobs to unthinking, uncaring people is indeed worse than to engage with those industries. I don&#39;t know how far this argument holds exactly, but my assumption is that apart from actual societal tabus most things would benefit from people that have strong progressive values who care. Don&#39;t you think?&lt;/p&gt;
&lt;p&gt;Will this &lt;em&gt;radically&lt;/em&gt; change anything? No. Will performatively writing purity based arguments against LLMs do anything, though? No. But there is an important difference. Being open to the idea that LLMs could be changed ever so slightly to something better could do at least &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&#39;m quoting that here to make two points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;AI/LLMs are not going to vanish tomorrow. A bubble will need time to deflate, and it&#39;s unclear if there is nothing else in it but hot air (it seems to me there is &lt;em&gt;some&lt;/em&gt; value here)&lt;/li&gt;
&lt;li&gt;Since they are going to be here for a while, active engagement is our moral responsibility.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I want more people actively (but critically) engaging with these tools and unfolding the simplistic for/against LLMs we so often encounter online.&lt;/p&gt;
&lt;p&gt;More generally, though, work was work and consisted of ups and downs. I have to keep an eye on my hours a little better in 2026, as I somehow managed to always work a little extra (like 10 to 30 minutes) basically every day. Add to that days with 9 or 10 hours instead of 8, and you end up with way too many overtime hours. This for sure is also a contributing factor to the burnout I felt this year: this year it wasn&#39;t so much the work itself that burned me out, but how little time I have to do things. Delays, interruptions, double-booked time, etc., all added up to a yearlong tightrope dance where finding a moment to catch one&#39;s breath was hard to find.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;media&quot;&gt;Media&lt;/h3&gt;
&lt;p&gt;I still watch lots of YouTube - it&#39;s my way of winding down and also my background noise for working or just doing things (I&#39;m having a video on as I&#39;m writing this). I have not really changed what I&#39;ve watched in this regard. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/01/recap.html&quot;&gt;Last year&lt;/a&gt; I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I did spend many hours watching Youtube this year. Mostly &lt;a href=&quot;https://www.youtube.com/@Baalorlord&quot;&gt;Baarlorlord&lt;/a&gt; (Slay The Spire Twitch Streamer) and &lt;a href=&quot;https://www.youtube.com/@CrackingTheCryptic&quot;&gt;Cracking The Cryptic&lt;/a&gt; (Sudoku-Channel). Everything else was watched &lt;em&gt;way&lt;/em&gt; less. &lt;a href=&quot;https://www.youtube.com/@Jorbs&quot;&gt;Jorbs&lt;/a&gt; (Twitch Streamer), &lt;a href=&quot;https://www.youtube.com/@aragusea&quot;&gt;Adam Ragusea&lt;/a&gt; (Food), &lt;a href=&quot;https://www.youtube.com/@TechnologyConnections&quot;&gt;Technology Connections&lt;/a&gt; (How does a freeze dryer work? How about a coffee maker?), &lt;a href=&quot;https://www.youtube.com/@mkbhd&quot;&gt;MKBHD&lt;/a&gt; (tech), &lt;a href=&quot;https://www.youtube.com/@ABetterComputer&quot;&gt;A Better Computer&lt;/a&gt; (apple tech) and some others. Most recently I have discovered &lt;a href=&quot;https://www.youtube.com/@aliabdaal&quot;&gt;Ali Abdaal&lt;/a&gt; (Productivity).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And this is mostly still true. I watched even less/none of Cracking The Cryptic, Jorbs, and Adam Ragusea, more Technology Connections; and added &lt;a href=&quot;https://www.youtube.com/@GoneFishingTVshow&quot;&gt;Gone Fishing&lt;/a&gt; to my rotation.&lt;/p&gt;
&lt;p&gt;I watched again very little amounts of movies and series. We watched 911/911 Lonestar, a German crime series called &amp;quot;Der Alte&amp;quot; and some other stuff, but most of it didn&#39;t stick in my head, and almost none of it ended up in my notes, so I don&#39;t even know what I watched this year, tbh. Most was kinda forgettable. I continue to be not interested in linear media where you&#39;re not supposed to do something on the side. I really liked &lt;a href=&quot;https://en.wikipedia.org/wiki/A_House_of_Dynamite&quot;&gt;A House Of Dynamite&lt;/a&gt; though.&lt;/p&gt;
&lt;p&gt;If YouTube is what I spent my time on when being tired, video games are what I spent my time on when having brain cycles left. Highlights of the year include &lt;a href=&quot;https://store.steampowered.com/app/2754380/The_Roottrees_are_Dead/&quot;&gt;The Roottress Are Dead&lt;/a&gt;, &lt;a href=&quot;https://www.riseofthegoldenidol.com&quot;&gt;The Rise Of The Golden Idol&lt;/a&gt; and &lt;a href=&quot;https://store.steampowered.com/app/1091500/Cyberpunk_2077/&quot;&gt;Cyberpunk 2077&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was also listening to podcasts, although not as much as in recent years: &lt;a href=&quot;https://maximumfun.org/podcasts/greatest-generation/&quot;&gt;Greatest Generation&lt;/a&gt;/&lt;a href=&quot;https://maximumfun.org/podcasts/greatest-trek/&quot;&gt;Greateast Trek&lt;/a&gt;, &lt;a href=&quot;https://tcgte.com&quot;&gt;TCGTE&lt;/a&gt; and &lt;a href=&quot;https://www.whoshatontheflooratmywedding.com&quot;&gt;Who Shat On The Floor At My Wedding&lt;/a&gt; were my main listens.&lt;/p&gt;
&lt;p&gt;When it comes to books, two books that really resonated with me were &lt;a href=&quot;https://www.oliverburkeman.com/meditationsformortals&quot;&gt;Meditations For Mortals&lt;/a&gt; and &lt;a href=&quot;https://www.melrobbins.com/letthemtheory&quot;&gt;The Let Them Theory&lt;/a&gt;. I read a bunch of other stuff this year, but most was forgettable. I also stopped reading kind of a lot of books because I didn&#39;t like them.&lt;/p&gt;
&lt;p&gt;In total there was a lot of stuff I consumed (at least partially) that didn&#39;t resonate with me this year. I guess that happens.&lt;/p&gt;
&lt;h3 id=&quot;real-world-things&quot;&gt;Real World Things&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;I finished another Finish course (A1.3-A2 language proficiency)&lt;/li&gt;
&lt;li&gt;After six years we managed to pay back our car, with the final payment made in April. It is now really ours. Still proud just thinking about that.&lt;/li&gt;
&lt;li&gt;My mom and brother visited us from Germany this Easter.&lt;/li&gt;
&lt;li&gt;My partner and I celebrated being together for 10 years in August!&lt;/li&gt;
&lt;li&gt;We celebrated my grandpa&#39;s 90th birthday in September - we used this opportunity to go to Germany using the ferry from Helsinki (taking our dog with us). Slightly stressful but also exciting and interesting. We visited Husum (where my mom lives), Berlin ( where my dad and my grandparents live), and Wernigerode.&lt;/li&gt;
&lt;li&gt;In October we celebrated my partner&#39;s dad&#39;s 80th birthday - first time I met the man&lt;/li&gt;
&lt;li&gt;One secret thing that I can&#39;t yet reveal&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;notes-and-setup&quot;&gt;Notes &amp;amp; Setup&lt;/h3&gt;
&lt;p&gt;I have gone through both a heating and a cooling period as regards both my notes and my task-management system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The first 1.5 quarters were spent excited about an active notes system, reviews of projects, and keeping everything going like a well-oiled machine.&lt;/li&gt;
&lt;li&gt;Everything up to the fourth quarter was spent trying to normalize the decay caused by burnout. Increasingly realizing that none of this actually moves the needle.&lt;/li&gt;
&lt;li&gt;Letting things go in the fourth quarter (and also closing down my accountability forum) finally allowed me to let things go the way they are meant to: use notes if you need them. Use a to-do list if you need it. I am no writer, no researcher. No entrepreneur. I don&#39;t need that much scaffolding to get my job done. And my outputs are either not text-based or don&#39;t depend on a meticulously pruned notes system.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have landed on the following at this moment in time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Only actually do what resonates (no, really!) and use notes/tasks/projects/etc. when you need them - which is about 60-80% less than I did before&lt;/li&gt;
&lt;li&gt;For task management specifically, I use Godspeed and have just a daily list mostly consisting of routines (repeating tasks), and I add one-off tasks as needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I don&#39;t even use Godspeed all the time or organize it particularly well. If the daily list is in order, I don&#39;t care about the other stuff.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;You&#39;ll have to mail them about it for some reason. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Not exactly the same, as this server is meant to handle many more things going forward, but still... &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I had left &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;micro&amp;period;blog&lt;/a&gt; because I wasn&#39;t satisfied with their stance on things that mattered to me - like trans rights - and was looking for a &amp;quot;tribe&amp;quot; that shared my values. OMG.lol somehow just fit nicely. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I never wrote a real announcement post about it, but &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/&quot;&gt;A Personal Note On My Interest In LLMs&lt;/a&gt; includes some more detail if you&#39;re curious. The forum&#39;s dead, btw., so no need to try to sign up for it anymore. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I gotta admit that this also is telling about the current situation in smaller companies, where you all but have to use these tools, as this situation for me as an individual is of course just a reflection of the companies situation and in turn of an industry&#39;s situation. In theory people ought to be working in a team composed of developers in different career stages. Budgets ought to be cut in a way that there is time to learn, to test and to refactor. To &lt;a href=&quot;https://pages.cs.wisc.edu/~remzi/Naur.pdf&quot;&gt;theory build&lt;/a&gt; (PDF). The mental health of the workers should be taken into account. Alas, we&#39;re not living in this world at this point in time (doesn&#39;t mean we shouldn&#39;t want it or fight for it or whatever). In any case, I adopted the tools that make work, such as it is, a passable and sometimes even an enjoyable activity. Using AI in the context of coding - at least as a senior - doesn&#39;t necesarily need to lead to the vibe-coded mess people complain about online so much. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I lost the nerve to finish it, because I felt vulnerable around it. At least I&#39;ll quote my main point from it here... &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This shows up in a fun way in the stats my Oura ring reports: I have been less stressed and slept better when I was having regular old workdays vs. when on vacation. And I was also less stressed while at work vs. when work got interrupted and things got spontaneously wild. I slept worse on weekends compared to the workweek. I think all of this is only half true in the sense that not every kind of stress is negative, but it does fit with my subjective experience in that &amp;quot;boring and regular&amp;quot; (predictable) tends to be better for my overall feeling of being rested/relaxed. &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        2025 - Year In Review

        https://blog.martin-haehnel.de/2026/01/01/2025-year-in-review/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1497 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/01/dailydogo1497/" />
      <updated>2026-01-01T21:10:34Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/01/dailydogo1497/</id>
      <content type="html">&lt;p&gt;DailyDogo 1497 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to a couch. There is  a slice of cucumber right next to her nose.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/f85996385a75c24bb7137a7b77650b69.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1497 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1496 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2026/01/01/dailydogo1496/" />
      <updated>2026-01-01T01:38:14Z</updated>
      <id>https://blog.martin-haehnel.de/2026/01/01/dailydogo1496/</id>
      <content type="html">&lt;p&gt;DailyDogo 1496 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the couch next to a human. Additional context not in the image: She is hiding from the fireworks outside and looking for support.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2026/0b982ada8cef51565756a204e0df64f1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1496 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1495 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/31/dailydogo1495/" />
      <updated>2025-12-30T22:15:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/31/dailydogo1495/</id>
      <content type="html">&lt;p&gt;DailyDogo 1495 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing tug with a dog toy held by the photographer.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e32787229ca2d13f6220bd99e4122059.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1495 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1494 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/30/dailydogo1494/" />
      <updated>2025-12-30T02:02:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/30/dailydogo1494/</id>
      <content type="html">&lt;p&gt;DailyDogo 1494 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under the couch table looking somewhat suspiciously at the camera out of the corner of her eyes.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6757ce0c3b3aedfef4d25a2f0064a080.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1494 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1493 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/28/dailydogo1493/" />
      <updated>2025-12-28T20:32:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/28/dailydogo1493/</id>
      <content type="html">&lt;p&gt;DailyDogo 1493 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back in the corner of a room.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/105dc932ee16d1e6a501ae3163c56493.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1493 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1492 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/27/dailydogo1492/" />
      <updated>2025-12-27T21:17:27Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/27/dailydogo1492/</id>
      <content type="html">&lt;p&gt;DailyDogo 1492 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor with her head down. She is looking directly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fe8419ba5ba9c6be59750217740dfe57.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1492 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1491 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/27/dailydogo1491/" />
      <updated>2025-12-26T22:14:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/27/dailydogo1491/</id>
      <content type="html">&lt;p&gt;DailyDogo 1491 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor, next to a dog toy and smiling beautifully into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/60fbeb202cce401257b40703e5670e60.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1491 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1490 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/26/dailydogo1490/" />
      <updated>2025-12-25T22:44:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/26/dailydogo1490/</id>
      <content type="html">&lt;p&gt;DailyDogo 1490 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in between a chair and the backside of a coach. The spot is so tight that her left ear stands up against the leg of the chair.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5ea0b397e539201acc60b05cd6ef149b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1490 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1489 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/25/dailydogo1489/" />
      <updated>2025-12-24T22:29:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/25/dailydogo1489/</id>
      <content type="html">&lt;p&gt;DailyDogo 1489 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan in between a bunch of gift bags.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/df8d84bc8829b095b6aeed49b1e0fa75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1489 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Oura Finally Supports Sleep Dept



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/23/oura-finally-supports-sleep-dept/" />
      <updated>2025-12-23T20:35:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/23/oura-finally-supports-sleep-dept/</id>
      <content type="html">&lt;p&gt;If this works &lt;a href=&quot;https://ouraring.com/blog/sleep-debt/&quot;&gt;as advertised&lt;/a&gt;, it probably means I can save the money I pay for rise (which I barely use(d) anyway). In my recap of my 2024 yearly theme &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html&quot;&gt;Yearly Theme 2024 Recap - Year Of Sleep&lt;/a&gt; I wrote about sleep debt relatively in-depth. And I wrote about &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/17/oura-renewal/&quot;&gt;why I renewed my membership subscription&lt;/a&gt; even though I had thought I could live without it but the tracking of fragmented sleep wasn&#39;t great using my Apple Watch only. Now I have another real reason to consider Oura&#39;s membership (and maybe even a new ring from them if this one should ever stop working.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Oura Finally Supports Sleep Dept

        https://blog.martin-haehnel.de/2025/12/23/oura-finally-supports-sleep-dept/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1488 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/23/dailydogo1488/" />
      <updated>2025-12-23T20:31:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/23/dailydogo1488/</id>
      <content type="html">&lt;p&gt;DailyDogo 1488 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in a hotel room, photographed from behind. She was clearly guarding the door, before she drifted off.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/06faa78df45aedf8b72434e5d0972e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1488 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1487 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/22/dailydogo1487/" />
      <updated>2025-12-22T21:40:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/22/dailydogo1487/</id>
      <content type="html">&lt;p&gt;DailyDogo 1487 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in front of a Christmas tree. She smiles into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/52f981c2508c5c2733b030bfc9311921.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1487 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1486 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/22/dailydogo1486/" />
      <updated>2025-12-21T22:24:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/22/dailydogo1486/</id>
      <content type="html">&lt;p&gt;DailyDogo 1486 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a red carpet next to a Christmas tree and in front of a bunch of elves.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/816b8cc6c115a3ac21dc7102b31161b4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1486 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1485 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/20/dailydogo1485/" />
      <updated>2025-12-20T21:32:50Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/20/dailydogo1485/</id>
      <content type="html">&lt;p&gt;DailyDogo 1485 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to a recliner chair in front of a curtain.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/28e139516487462cc4f21dbc5a0d4182.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1485 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1484 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/19/dailydogo1484/" />
      <updated>2025-12-19T20:03:14Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/19/dailydogo1484/</id>
      <content type="html">&lt;p&gt;DailyDogo 1484 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in between a bunch of wrapping paper and smiling. There are some Christmas decorations in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b9c13be45fb9f828315edd62e1aad15d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1484 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Yearly Theme 2025 Recap - Year Of The Quarter



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/" />
      <updated>2025-12-18T20:36:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/</id>
      <content type="html">&lt;p&gt;I&#39;m slightly late with this and so have to keep it somewhat shorter than &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html&quot;&gt;last year&lt;/a&gt;. To find out what a &amp;quot;Yearly Theme&amp;quot; even is, look at my last year&#39;s post, or watch this video from CGP Grey:&lt;/p&gt;
&lt;div id=&quot;NVGuFdX5guE&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/NVGuFdX5guE&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;In 2025 my theme was &amp;quot;Year Of The Quarter&amp;quot;. First I had the idea to name it &amp;quot;Year Of The ZKN&amp;quot;, because the idea of living &amp;quot;out of&amp;quot; my notes system (ZKN is short for &lt;a href=&quot;https://en.wikipedia.org/wiki/Zettelkasten&quot;&gt;Zettelkasten&lt;/a&gt;) intrigued me. But I discovered relatively quickly that Obsidian&#39;s plugin landscape had somewhat decayed and many good plugins for crucial aspects of a life organized within a notes system and app - like a calendar plugin or a todo plugin - were creating a lot of friction.&lt;/p&gt;
&lt;p&gt;In the beginning of the year/end of last year, I spent more time watching Ali Abdaal videos. Abdaal is a productivity person that creates a lot of content in this space. One of his videos that stuck with me was this one:&lt;/p&gt;
&lt;div id=&quot;nIv1J5O15To&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/nIv1J5O15To&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;The main thing that spoke to me was &amp;quot;the execution gap&amp;quot; meaning that most people know enough to do the thing they want to do, they just don&#39;t do it. Another thing I took away was to think about goals/or &amp;quot;quests&amp;quot; for the quarter instead of the year. And finally: Abdaal offered a free zoom-based event every quarter to reflect and plan what&#39;s next. This all motivated me to try this quarterly thing and do a little more with my time. Smaller goals, but more of them. Maybe that could work?&lt;/p&gt;
&lt;p&gt;Abdaal recommended having two main goals/quests - one for &amp;quot;life&amp;quot; one for &amp;quot;work&amp;quot; and a few &amp;quot;side quests&amp;quot; for other stuff. Here are mine throughout the year:&lt;/p&gt;
&lt;h3 id=&quot;quarter-1&quot;&gt;Quarter 1&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Main Life - Implement Solid Health Routine&lt;/li&gt;
&lt;li&gt;Main Work - Implement A Solid Meta-Work Framework&lt;/li&gt;
&lt;li&gt;Sidequests
&lt;ul&gt;
&lt;li&gt;Learn Finnish&lt;/li&gt;
&lt;li&gt;R&amp;amp;D-Framework&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;quarter-2&quot;&gt;Quarter 2&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Main Life - Clean Up&lt;/li&gt;
&lt;li&gt;Main Work - AI Code Craft&lt;/li&gt;
&lt;li&gt;Sidequests
&lt;ul&gt;
&lt;li&gt;slow down – Walk, Reflect, Breathe&lt;/li&gt;
&lt;li&gt;Nordic Productivity&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;quarter-3&quot;&gt;Quarter 3&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Main Life - Home With Garden&lt;/li&gt;
&lt;li&gt;Main Work - Lebenszyklus&lt;/li&gt;
&lt;li&gt;Sidequests
&lt;ul&gt;
&lt;li&gt;Sleep&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;quarter-4&quot;&gt;Quarter 4&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Nothing!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So let&#39;s talk about these a moment.&lt;/p&gt;
&lt;p&gt;I think it is kind of interesting how my quarters reflect the amount of exhaustion I felt from trying to pursue so many things. It became clear very quickly that going to gym (&amp;quot;Implement Solid Health Routine&amp;quot;) and taking part in a Finnish course and doing lots of reflective exercises and keeping all my task-management ducks in a row was a fun but ultimately way too exhausting way of living. I knew it already after 3 short months. I still created an accountability forum (didyoudoit) and started posting weekly threads for people to share their plans for the week. It helped me being accountable but at the cost of increasing burnout from the accumulated things in my life (these &amp;quot;quests&amp;quot;, my family life, my job...).&lt;/p&gt;
&lt;p&gt;In quarter 2 a &amp;quot;slow down&amp;quot; side quest was introduced that tried to find pockets of time to counter balance the crazy amount of things I had put on my plate. It didn&#39;t go so well. I noticed how my life was not as malleable as I maybe had thought. Introducing a bunch of new stuff all the time was hard. I couldn&#39;t integrate new things as easily as Abdaal seemingly could.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; So I just came up with &amp;quot;Quests&amp;quot; for things that I had to maintain anyway (&amp;quot;Clean Up&amp;quot;) or things that my job demanded (&amp;quot;AI Code Craft&amp;quot;). &amp;quot;Nordic Productivity&amp;quot; on the other hand was an ill-fated idea to start my own youtube channel. I never even started to write a script. That was a pattern this year: Noticing what I didn&#39;t need or want to do. As much as I enjoy watching Youtube: Streaming or filming myself is something I don&#39;t want to do.&lt;/p&gt;
&lt;p&gt;Quarter 3 was an attempt to combine my insight of not doing as much with my wish for some forward momentum. I wanted a house with garden so I made it a squishy goal. I tried to figure out a way to find time to express my feelings around living according to my own seasons or &amp;quot;cycles&amp;quot; (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/&quot;&gt;Lebenszyklus&lt;/a&gt;). By this point I had read &amp;quot;Meditations for Mortals: Four Weeks to Embrace Your Limitations and Finally Make Time for What Counts&amp;quot; by Oliver Burkeman that seemed to speak to me directly by basically extinguishing the goals-based (call them &amp;quot;quests&amp;quot; all you want) thinking and replacing it with a thinking along the lines of resonance (itself a concept developed by the German sociologist Hartmut Rosa). My thinking shifted away from a planning and control based mindset towards a mindset of being in flow with my own life and enjoying the ride by gripping less tightly and actually doing the things that I wanted to do instead of preparing for them endlessly (and then never doing them).&lt;/p&gt;
&lt;p&gt;In quarter 4 I finally let go. No goals, no quests, nothing. I stopped things like counting calories (even though I had lost 7 kilos - it made me too miserable and restricted in my eating habits) and only kept things that resonated with me without having to track them (and then track the tracking and reflect on tracking the tracking and so forth). I reduced most of my task management stuff to a simple daily list with repeating tasks and some one-offs for things that needed to be done. But I don&#39;t track or reflect or review these things anymore. And it has been such a bliss!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;All in all I think this year showed me once again that trying to force a goals-based life is a good way to burn yourself out. It&#39;s not even that it wasn&#39;t an interesting ride, but it was simply unsustainable. And looking back it seems unwise to wear such a tight corset (have this many goals over this period of time) instead of following my own nose: Just because I came up with something at the beginning of a quarter (or a year or whatever) doesn&#39;t mean it keeps being a good idea going forward.&lt;/p&gt;
&lt;p&gt;That&#39;s really what makes yearly themes great though: That they are really not about consistency but about color: A theme is an invitation not a commitment.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although I felt like I started to see the seams in those live zoom-events a little: Part of why content creators in the productivity space can do this, is because it&#39;s literally their job to produce new content in their particular niche, whereas I am employed to work 8 hours and have only limited time and brain cycles that are just mine. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you&#39;d ask my partner she&#39;d probably say that I am still doing many of those things: Like keeping a budget or tracking my sleep. But these are actually resonating with me. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Yearly Theme 2025 Recap - Year Of The Quarter

        https://blog.martin-haehnel.de/2025/12/18/yearly-theme-2025-recap-year-of-the-quarter/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1483 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/18/dailydogo1483/" />
      <updated>2025-12-18T20:27:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/18/dailydogo1483/</id>
      <content type="html">&lt;p&gt;DailyDogo 1483 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed with the craziest smile on her face.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/70ab4c27f75b0447c29ee5a994214e63.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1483 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1482 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/17/dailydogo1482/" />
      <updated>2025-12-17T20:30:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/17/dailydogo1482/</id>
      <content type="html">&lt;p&gt;DailyDogo 1482 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the middle of the room, looking over her should back towards the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31dce6b6f8b161b3f8dd5312b92a6deb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1482 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1481 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/16/dailydogo1481/" />
      <updated>2025-12-16T21:10:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/16/dailydogo1481/</id>
      <content type="html">&lt;p&gt;DailyDogo 1481 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking at a bird christmas ornament.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a77a988ff943621ece3a9e391f971ae6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1481 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1480 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/15/dailydogo1480/" />
      <updated>2025-12-15T20:58:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/15/dailydogo1480/</id>
      <content type="html">&lt;p&gt;DailyDogo 1480 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A man lying on the floor and a black and white corgi cardigan lying in her dog bed. It&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0001a8015e16631653e321f6eb1375ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1480 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1479 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/14/dailydogo1479/" />
      <updated>2025-12-14T20:48:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/14/dailydogo1479/</id>
      <content type="html">&lt;p&gt;DailyDogo 1479 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a balcony door. Half her body is hidden behind a curtain so that only her lower half and her snout is visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/be82a779e1e9ac193d7e4531c55085a8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1479 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1478 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/13/dailydogo1478/" />
      <updated>2025-12-13T21:21:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/13/dailydogo1478/</id>
      <content type="html">&lt;p&gt;DailyDogo 1478 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor and looking up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/47dfc8ac73c2686c0c13a4df581a3e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1478 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo - Cleaning Up Cont&#39;d



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/13/whiledo-cleaning-up-cont-d/" />
      <updated>2025-12-13T14:53:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/13/whiledo-cleaning-up-cont-d/</id>
      <content type="html">&lt;p&gt;Last I cleaned up the blog repo, &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/29/whiledo-cleaning-up-scripts-and-docker/&quot;&gt;I was working on my package&amp;period;json scripts and docker&lt;/a&gt;. I didn&#39;t do anything on the apps themselves yet, just the root repo parts. There is still stuff to do on the root of the repo, too, so let&#39;s watch what we&#39;re dealing with:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Screenshot of a monorepo in VS Code showing the folder structure. The root contains directories such as .github, .husky, .vscode, apps (with blog and blog-api), docker, docs, node_modules and scripts. Various configuration files like docker-compose.yml, Dockerfiles, Caddyfile, package.json, pnpm files, and README.md are also visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/16e87133fd718c315c5b3136319c4796.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The README is not ready yet, but I want to simplify the amount of files first and that means looking through them one-by-one. Let&#39;s start with the two Caddyfiles. Both claim to be &amp;quot;Caddyfile for local blog development&amp;quot;. Let&#39;s see which one is used in the docker-compose file... wait. There are two of those as well! Ah, my trusty README tells me what&#39;s going with those:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the local dev env we use a docker-compose file (&lt;code&gt;docker-compose.yml&lt;/code&gt;) to run things. On prod, we use &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt;. To simulate prod (i.e. to test the build process locally), we have another docker-compose file called &lt;code&gt;docker-compose.single.yml&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Okay. Great. So both docker-compose files are needed. Alright back to the Caddyfiles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;./&lt;code&gt;Caddyfile.dev&lt;/code&gt; - is used in the &amp;quot;normal&amp;quot; &lt;code&gt;docker-compose.yml&lt;/code&gt; for local development&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./docker/Caddyfile.single&lt;/code&gt; - this one I didn&#39;t even mention, but it&#39;s part of the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/&quot;&gt;Single-Image Coolify Deployment Strategy&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;./&lt;code&gt;Caddyfile&lt;/code&gt; - I don&#39;t find any uses. It&#39;s not mentionend in any docker-compose files nor in any Dockerfiles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I delete that file and rename from &lt;code&gt;Caddyfile.dev&lt;/code&gt; to &lt;code&gt;Caddyfile&lt;/code&gt; and move that into the &lt;code&gt;docker&lt;/code&gt; subdir. That leaves us with what I believe is the minum amount of files that need to be in the root:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.dockerignore&lt;/li&gt;
&lt;li&gt;.gitignore&lt;/li&gt;
&lt;li&gt;.prettierignore&lt;/li&gt;
&lt;li&gt;.prettierrc&lt;/li&gt;
&lt;li&gt;AGENTS.md - should be in the root&lt;/li&gt;
&lt;li&gt;docker-compose.single.yml - for testing single image deploys&lt;/li&gt;
&lt;li&gt;docker-compose.yml - for local development&lt;/li&gt;
&lt;li&gt;Dockerfile.single - for creating the prod image&lt;/li&gt;
&lt;li&gt;eslint.config.js&lt;/li&gt;
&lt;li&gt;package.json&lt;/li&gt;
&lt;li&gt;pnpm-lock.yaml&lt;/li&gt;
&lt;li&gt;pnpm-workspace.yaml&lt;/li&gt;
&lt;li&gt;README.md&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So still 13 files. I think I can live with this for now. Actually I can&#39;t. Let&#39;s move at least the docker stuff out of the way. For the Dockerfile.single, I move it inside the docker subdir and change the &amp;quot;Dockerfile Location&amp;quot; of my deployment to that. I also adjust the path in the docker-compose.single.yml, too.&lt;/p&gt;
&lt;p&gt;I&#39;ll leave the main docker-compose file where it is, but move the &lt;code&gt;.single&lt;/code&gt;-Version to &lt;code&gt;docker&lt;/code&gt; and adjust the path in the pnpm script. Alright. Time to update README, and other references (like comments in .dockerignore). After this, I&#39;m left with 11 files.&lt;/p&gt;
&lt;p&gt;I write this in my CHANGELOG:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Changed

- cleaned up docker related files: Moved them to the docker subdir, if possible (excluding the docker-compose.yml for local dev itself)
- renamed Caddyfile.dev to Caddyfile (after the unused one was deleted).
- anything pertaining to the prod/single image deployment now has `.single` in the name. Everything else should hopefully be unambigous (i.e. either used in all environments, or its usage should be clear from context: &amp;quot;There is no docker-compose used in the prod deployment, therefore docker-compose.yml is meant for the dev env.&amp;quot; We&#39;ll see if that actually works, or if the `.dev` naming actually works better...)

### Removed

- removed an unused Caddyfile
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it for now! Take care.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo - Cleaning Up Cont&#39;d

        https://blog.martin-haehnel.de/2025/12/13/whiledo-cleaning-up-cont-d/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1477 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/12/dailydogo1477/" />
      <updated>2025-12-12T21:59:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/12/dailydogo1477/</id>
      <content type="html">&lt;p&gt;DailyDogo 1477 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under a couch table watching up at the camera. There is a beautiful christmassy plant arrangement on the table.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c1cb8789e8d9166726c3494e7da26fb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1477 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Doom Text Generator



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/11/doom-text-generator/" />
      <updated>2025-12-11T20:55:36Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/11/doom-text-generator/</id>
      <content type="html">&lt;p&gt;Similar to the Diablo &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/01/d2-font-generator/&quot;&gt;D2 Font Generator&lt;/a&gt; here&#39;s a &lt;a href=&quot;https://c.eev.ee/doom-text-generator/&quot;&gt;Doom Text Generator&lt;/a&gt;. Pretty cool.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Doom Text Generator

        https://blog.martin-haehnel.de/2025/12/11/doom-text-generator/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Quick Notes Will Continue Until Morale Improves (Also The Distinction Between QuickNotes and Seedlings)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/11/the-quick-notes-will-continue-until-morale-improves-also-the-distinction-between-quicknotes-and-seedlings/" />
      <updated>2025-12-11T20:42:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/11/the-quick-notes-will-continue-until-morale-improves-also-the-distinction-between-quicknotes-and-seedlings/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-12-11 - Had to adjust the title to fit the permalink (I had left out the stuff in the brackets (about the Distinction) in the title at first)&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;To kick-start blogging again - particularly about things I like and/or things I want to comment on - I will try to post more QuickNotes (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/02/more-quicknotes/&quot;&gt;again&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;I think, I also figured out how to differentiate between a &amp;quot;seedling&amp;quot; and a &amp;quot;QuickNote&amp;quot;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/&quot;&gt;Seedling&lt;/a&gt;: A &amp;quot;starting point&amp;quot;. A short note that might grow into a larger, more complex one.&lt;/li&gt;
&lt;li&gt;Quick Note: A link, a quick comment on somting or similar. Maybe similar to a &amp;quot;fleeting note&amp;quot; in a private Zettelkasten.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So my link to the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/11/doom-text-generator/&quot;&gt;Doom Text Generator&lt;/a&gt; is a QuickNote and &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/30/dev-log/&quot;&gt;Keeping A Dev Log&lt;/a&gt; is maybe more of a Seedling.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/11/the-quick-notes-will-continue-until-morale-improves-also-the-distinction-between-quicknotes-and-seedlings/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although I have not gone back and tagged other posts that would fit. I think &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/blog-as-zettelkasten-browser/&quot;&gt;Blog As Zettelkasten Browser&lt;/a&gt; or &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/&quot;&gt;Idea Mining Patterns&lt;/a&gt; could also be categorized as a Seedling. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/11/the-quick-notes-will-continue-until-morale-improves-also-the-distinction-between-quicknotes-and-seedlings/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        The Quick Notes Will Continue Until Morale Improves (Also The Distinction Between QuickNotes and Seedlings)

        https://blog.martin-haehnel.de/2025/12/11/the-quick-notes-will-continue-until-morale-improves-also-the-distinction-between-quicknotes-and-seedlings/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1476 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/11/dailydogo1476/" />
      <updated>2025-12-11T20:39:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/11/dailydogo1476/</id>
      <content type="html">&lt;p&gt;DailyDogo 1476 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor, between a sofa and a sofa chair. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0cd2a267733ce7b93b2ea20eefa46b94.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1476 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1475 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/10/dailydogo1475/" />
      <updated>2025-12-10T20:16:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/10/dailydogo1475/</id>
      <content type="html">&lt;p&gt;DailyDogo 1475 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor with an orange dog toy in her mouth. There is a smiley stitched on to the toy and Napu looks expectantly.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/44f2503b463ca1d8c1d6cd9390cc88e4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1475 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1474 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/09/dailydogo1474/" />
      <updated>2025-12-09T21:25:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/09/dailydogo1474/</id>
      <content type="html">&lt;p&gt;DailyDogo 1474 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying half under a bed. She somehow looks like she is deep in thought (probably about the next meal).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bc43a6a3d0026008ec19713f9a438da3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1474 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1473 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/08/dailydogo1473/" />
      <updated>2025-12-08T20:27:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/08/dailydogo1473/</id>
      <content type="html">&lt;p&gt;DailyDogo 1473 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan eagerly awaiting the elevator door to open to go for a walk.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/065339c87a885eb925f9577888770d97.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1473 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1472 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/08/dailydogo1472/" />
      <updated>2025-12-07T22:09:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/08/dailydogo1472/</id>
      <content type="html">&lt;p&gt;DailyDogo 1472 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a carpet making a c shape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f57bc37ab0a2de51c714fb0c492f55af.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1472 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1471 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/06/dailydogo1471/" />
      <updated>2025-12-06T21:57:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/06/dailydogo1471/</id>
      <content type="html">&lt;p&gt;DailyDogo 1471 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking towards the camera. The photo is somewhat unsharp.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b0369a4a781680a4402b75f2a7b06f0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1471 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1470 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/05/dailydogo1470/" />
      <updated>2025-12-05T20:45:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/05/dailydogo1470/</id>
      <content type="html">&lt;p&gt;DailyDogo 1470 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and look up at the camera. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3d1dd208c4d5fc1128525162e61e68.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1470 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1469 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/04/dailydogo1469/" />
      <updated>2025-12-04T21:10:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/04/dailydogo1469/</id>
      <content type="html">&lt;p&gt;DailyDogo 1469 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed and looking excitedly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad3bfd4fcf9b3fa1ae354e6fca072e4e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1469 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1468 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/03/dailydogo1468/" />
      <updated>2025-12-03T20:00:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/03/dailydogo1468/</id>
      <content type="html">&lt;p&gt;DailyDogo 1468 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor looking suspicious towards the camera. The photo is somehwhat unsharp, but her facial expression is priceless.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/daefb85bdaaa14efcd4439edff8ed8e2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1468 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1467 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/02/dailydogo1467/" />
      <updated>2025-12-02T21:09:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/02/dailydogo1467/</id>
      <content type="html">&lt;p&gt;DailyDogo 1467 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing in the snow in front of the frozen baltic sea. There are some reeds visible, too.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8de12a7c2c39a0bea7f4c0f3c3784f7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1467 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1466 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/12/01/dailydogo1466/" />
      <updated>2025-12-01T18:16:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/12/01/dailydogo1466/</id>
      <content type="html">&lt;p&gt;DailyDogo 1466 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a white carpet and looking up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ab06579199888d169f811938caefdbb6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1466 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1465 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/30/dailydogo1465/" />
      <updated>2025-11-30T21:01:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/30/dailydogo1465/</id>
      <content type="html">&lt;p&gt;DailyDogo 1465 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on top of a lightly vegetated hill overlooking the baltic sea.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/84670b2ffb4048a5931f37f63d4d2dfd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1465 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Abandoning Theory



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/30/abandoning-theory/" />
      <updated>2025-11-30T16:39:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/30/abandoning-theory/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-12-02 - removed confusing brackets in the last paragraph.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I was just thinking, while scrolling through my feed about this post:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;RE: https://mathstodon.xyz/@anna/115476226397847329&lt;/p&gt;
&lt;p&gt;No one offered any suggestions, so after a short fiction break, I’m now reading Judith Butler’s Who’s Afraid of Gender?[…]
— &lt;a href=&quot;https://mathstodon.xyz/@anna/115638433799653557&quot;&gt;https://mathstodon.xyz/@anna/115638433799653557&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The person behind the post is the assistant professor in Computer Science Dr. Anna Latour. And of course my brain heard Latour and thought back to &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Bruno Latour&lt;/a&gt; (as far as I can tell there is no relation there). And then it thought about my time entangled with theory while I was still studying and how much I enjoyed that. I scrolled a little through her posts and also past one where she was hiring for a PhD. The details don&#39;t really matter, as I never finished my computer science degree. But it made me reminisce about a time and a potential future that never materialized: That of me as an academic.&lt;/p&gt;
&lt;p&gt;I have not read an academic paper or a theoretical book in my field (history of science and technology) in quite some time now and have &amp;quot;just&amp;quot; been working as a programmer and learning to be in a relationship and in another country and caring for a dog in the last 10 years. Things that may appear &amp;quot;boring&amp;quot;. But if they are &amp;quot;boring&amp;quot;, then they are &amp;quot;boring&amp;quot; in the same way as theory is &amp;quot;boring&amp;quot;. Nowadays, there are hardly any cycles left to just sit in theory, as I loved to do for so many years. Now, I am still living off of my engagement with theory in my 20s, and I&#39;m 39 now. The world of theory has not stood still, of course, and so my contact with what I perceived as cutting edge has been lost in that regard. Still, having been in contact with theory has served me well. I love that I still have those well-trodden paths in my brain that allow me to think about things in a &amp;quot;philosophical&amp;quot;, &amp;quot;constructivist&amp;quot;, &amp;quot;historical&amp;quot;, &amp;quot;systemic&amp;quot;, &amp;quot;poststructuralist&amp;quot;, etc. pp. way. The &amp;quot;approach&amp;quot; and the way to see the world as a theoretician has stuck. I don&#39;t find the time to carve out more paths or update them, though. At least not now, or if I do, it&#39;s pretty surface level, to be honest.&lt;/p&gt;
&lt;p&gt;And you know what? It&#39;s fine. Hard to believe I&#39;d say that ever. But I notice that as &lt;a href=&quot;https://nifplay.org/what-is-play/play-personalities/&quot;&gt;a person who likes to explore things&lt;/a&gt; I actually have not lost but gained a lot by not gripping too tightly and instead of looking back at my love for theory as something I didn&#39;t min/max correctly, I look at it as something that is in my toolkit and that I&#39;ll always cherish even if I don&#39;t have the time or calm to explore it as thoroughly as I did back then.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Abandoning Theory

        https://blog.martin-haehnel.de/2025/11/30/abandoning-theory/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1464 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/29/dailydogo1464/" />
      <updated>2025-11-29T21:06:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/29/dailydogo1464/</id>
      <content type="html">&lt;p&gt;DailyDogo 1464 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up of a black and white corgi cardigan lying in her dog bed, with half her head buried under a blanket.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a24a82d6f8c9866ce15f8890da0e77f3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1464 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo: Cleaning Up Scripts and Docker



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/29/whiledo-cleaning-up-scripts-and-docker/" />
      <updated>2025-11-29T14:43:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/29/whiledo-cleaning-up-scripts-and-docker/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/&quot;&gt;Continuing from yesterday&amp;period;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Today I&#39;ll cleanup the absolute mess that is the &lt;code&gt;package.json&lt;/code&gt; file(s) and the various docker-related files. We have &lt;code&gt;package.json&lt;/code&gt; files in blog and blog-api and one in the root of course. But let&#39;s start with the docker files.&lt;/p&gt;
&lt;h3 id=&quot;docker&quot;&gt;Docker&lt;/h3&gt;
&lt;p&gt;We have the following docker-related files and folders:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker&lt;/code&gt; - a folder for docker-related files - kept&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker/Caddyfile.single&lt;/code&gt; - the current Caddy configuration file for the single image deployment method I am using now - kept&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker/entrypoint.single.sh&lt;/code&gt; - the entrypoint script for the image - kept&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./.dockerignore&lt;/code&gt; - all kinds of paths that shouldn&#39;t be part of the build context (will have to clean this up another time) - kept, but needs work&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./docker-compose.yml&lt;/code&gt; - this runs the local dev-env - kept, but needs work&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./docker-compose.prod.yml&lt;/code&gt; - this was what I used before switiching to just one imagine - removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./docker-compose.single.yml&lt;/code&gt; - this is used to run the prod build locally (to check or debug it) - kept&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./Dockerfile.caddy&lt;/code&gt; - Caddy config file from the old docker-compose.prod.yml - removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./apps/blog/Dockerfile.prod&lt;/code&gt;- Dockerfile from the old &lt;code&gt;docker-compose.prod.yml&lt;/code&gt; - removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./apps/blog/Dockerfile.dev&lt;/code&gt; - some old Dockerfile for the dev env - removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./apps/blog/.dockerignore&lt;/code&gt; - a .dockerignore from before api and blog were even part of the same monorepo - removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./apps/blog-api/Dockerfile&lt;/code&gt; - this one is still used for building the API in the current local dev setup. It shouldn&#39;t be needed to build an image like this if I mount everything into a node/pnpm container - kept, for now&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./apps/blog-api/.dockerignore&lt;/code&gt; - various files and paths excluded to speed up builds of the api. Shouldn&#39;t be needed with one of those in the root of the repo. - removed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;scripts&quot;&gt;Scripts&lt;/h3&gt;
&lt;p&gt;I am looking at this rat king of a package.json scripts section:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpx concurrently -k &#92;&quot;pnpm --dir apps/blog start&#92;&quot; &#92;&quot;pnpm --dir apps/blog wrangler:proxy&#92;&quot; &#92;&quot;pnpm --dir apps/cloudflare-blog-api dev&#92;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;op run --env-file=apps/blog-api/.env.1password -- sh -c &#39;pnpm build:blog:vps &amp;amp;&amp;amp; pnpx concurrently -k &#92;&quot;pnpm --dir apps/blog start:vps&#92;&quot; &#92;&quot;docker compose up&#92;&quot;&#39;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:rebuild&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose build blog-api &amp;amp;&amp;amp; pnpm dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;docker:single:test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml up --build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;docker:single:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;docker:single:logs&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml logs -f app&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog start&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build &amp;amp;&amp;amp; pnpm --dir apps/cloudflare-blog-api check&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:blog:vps&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build:vps&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api check&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:daily&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpx cross-env DAILY_FEED=1 ELEVENTY_RUN_MODE=build pnpm --dir apps/blog build-nocolor&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;deploy:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api run deploy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;sync:from-cf&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-from-cloudflare.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;sync:dry-run&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-from-cloudflare.js --dry-run&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;sync:favs&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-from-cloudflare.js --only=favs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;sync:guestbook&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node scripts/sync-from-cloudflare.js --only=guestbook&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;types:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api types&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --check ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;format:write&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --write ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;prepare&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api apps/blog&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:fix&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api apps/blog --fix&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/blog&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:and:format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm lint:fix &amp;amp;&amp;amp; pnpm format:write&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test:script&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest scripts/post-versions.test.js&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I can immediately remove anything that refers to the &amp;quot;cloudflare-blog-api&amp;quot; as &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/27/whiledo-mini-cleanup-session/&quot;&gt;we removed that already a few days ago&lt;/a&gt;. Same goes for the &lt;code&gt;sync:...&lt;/code&gt; scripts as we don&#39;t run on cloudflare anymore. The sync script can also be deleted. Next we need to decide what we want to handle where. Personally, I like to have commands that I run all the time in the package.json as it simplifies the work on the blog. It&#39;s easier to write &lt;code&gt;pnpm run dev:docker&lt;/code&gt; than &lt;code&gt;op run --env-file=apps/blog-api/.env.1password -- sh -c &#39;pnpm build:blog:vps &amp;amp;&amp;amp; pnpx concurrently -k &#92;&amp;quot;pnpm --dir apps/blog start:vps&#92;&amp;quot; &#92;&amp;quot;docker compose up&#92;&amp;quot;&#39;&lt;/code&gt;. It would be even easier to run &lt;code&gt;pnpm dev&lt;/code&gt; so I add that as an alias (the other dev script is gone by this point). We need that dev:docker:rebuild script for now as we build from a Dockerfile.&lt;/p&gt;
&lt;p&gt;I also rename the &lt;code&gt;docker:single:...&lt;/code&gt; scripts to &lt;code&gt;dev:docker:single:...&lt;/code&gt; and remove the docker:single:logs command completely. I almost always read the logs through the Docker app. Let&#39;s skip for the moment down to the formating and linting section. I don&#39;t need a &lt;code&gt;format&lt;/code&gt; and &lt;code&gt;fromat:write&lt;/code&gt; script. I also don&#39;t need different linting scripts for all the parts of the repo. One is enough. I simplify here a little. These script are meant to autofix what is possible to autofix... ah but no. We need the check-only scripts for husky/git hooks. Alright. So we need a &lt;code&gt;format&lt;/code&gt; script and a &lt;code&gt;lint&lt;/code&gt; script that only checks files and a &lt;code&gt;fix&lt;/code&gt; version for each of these tasks. And I&#39;ll throw in a do both script as well. While I was creating these script entries I realized that it&#39;s easier to organize by action first. So &lt;code&gt;check:format&lt;/code&gt; or &lt;code&gt;fix:lint&lt;/code&gt;. If  I want to fix both I can do &lt;code&gt;pnpm run fix:both&lt;/code&gt;. Don&#39;t know if I remember this going forward. But I&#39;ll try this out and see how it goes.  I also update the git hook.&lt;/p&gt;
&lt;p&gt;So here&#39;s where we stand now:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;op run --env-file=apps/blog-api/.env.1password -- sh -c &#39;pnpm build:blog:vps &amp;amp;&amp;amp; pnpx concurrently -k &#92;&quot;pnpm --dir apps/blog start:vps&#92;&quot; &#92;&quot;docker compose up&#92;&quot;&#39;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:rebuild&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose build blog-api &amp;amp;&amp;amp; pnpm dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:single:test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml up --build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:single:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;// 👇 still to-do 👇&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog start&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:blog:vps&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build:vps&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:daily&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpx cross-env DAILY_FEED=1 ELEVENTY_RUN_MODE=build pnpm --dir apps/blog build-nocolor&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test:vps-api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test:script&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest scripts/post-versions.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;// 👆 still to-do 👆&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;prepare&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --check ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint .&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:both&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm check:lint &amp;amp;&amp;amp; pnpm check:format&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --write ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint . --fix&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:both&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm fix:lint &amp;amp;&amp;amp; pnpm fix:format&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So I don&#39;t think we need most of the ones we have&#39;t touched, yet. For example &lt;code&gt;dev:blog&lt;/code&gt;. Because if we were to work on the blog only we either still want everything else running - to see how it looks in concert - or we can just cd into the blog sub dir to run the blog directly from there. Some of these can also be called directly (e.g. &lt;code&gt;pnpm --dir apps/blog build:vps&lt;/code&gt; instead of &lt;code&gt;pnpm build:blog:vps&lt;/code&gt; in &lt;code&gt;dev:docker&lt;/code&gt;) in other scripts. Those &amp;quot;aliases&amp;quot; the don&#39;t do enough. This leaves us with &lt;code&gt;build:daily&lt;/code&gt;, &lt;code&gt;test:vps-api&lt;/code&gt;, &lt;code&gt;test:script&lt;/code&gt;. The first and the last one refer to a feature not yet released: I&#39;d like to have a summary post every evening on mastodon that shows what posts have been changed throughout the day and this special build and the test for the script are parts of that. I&#39;ll have to revisit this at some point, for now I just &amp;quot;namespace&amp;quot; them with &lt;code&gt;daily-update:...&lt;/code&gt;. But &lt;code&gt;test:vps-api&lt;/code&gt; is not generic enough and doesn&#39;t test the whole repo (because vitest is not yet setup for the blog). For now I just rename it to just &lt;code&gt;test&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So cleanup for this session is done! I decided against delving into the &lt;code&gt;package.json&lt;/code&gt; file&#39;s for each app as I have to get going. Here&#39;s the &lt;code&gt;scripts&lt;/code&gt; section from my root &lt;code&gt;package.json&lt;/code&gt; one more time:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;op run --env-file=apps/blog-api/.env.1password -- sh -c &#39;pnpm --dir apps/blog build:vps &amp;amp;&amp;amp; pnpx concurrently -k &#92;&quot;pnpm --dir apps/blog start:vps&#92;&quot; &#92;&quot;docker compose up&#92;&quot;&#39;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:rebuild&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose build blog-api &amp;amp;&amp;amp; pnpm dev:docker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:single:test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml up --build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:docker:single:down&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;docker compose -f docker-compose.single.yml down&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog-api test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;daily-update:build:daily&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpx cross-env DAILY_FEED=1 ELEVENTY_RUN_MODE=build pnpm --dir apps/blog build-nocolor&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;daily-update:test:script&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest scripts/post-versions.test.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;prepare&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --check ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint .&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;check:both&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm check:lint &amp;amp;&amp;amp; pnpm check:format&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --write ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint . --fix&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;fix:both&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm fix:lint &amp;amp;&amp;amp; pnpm fix:format&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Much cleaner!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo: Cleaning Up Scripts and Docker

        https://blog.martin-haehnel.de/2025/11/29/whiledo-cleaning-up-scripts-and-docker/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1463 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/28/dailydogo1463/" />
      <updated>2025-11-28T20:55:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/28/dailydogo1463/</id>
      <content type="html">&lt;p&gt;DailyDogo 1463 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying flat in wet snow while an other dog looks at her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fb301278e5239545ac49a0b6fba97402.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1463 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo: More Cleanup



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/" />
      <updated>2025-11-28T14:07:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/</id>
      <content type="html">&lt;p&gt;Continuing &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/27/whiledo-mini-cleanup-session/&quot;&gt;yesterday&amp;apos;s cleanup session in the blog repo&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;The problem with cleaning up documentation is that in order to have a clean README, we need other things to be cleaned up as well. But I think we can start by removing things from the README we don&#39;t need. We can also structure the README in a way we&#39;d like it to be.&lt;/p&gt;
&lt;p&gt;I think a good README is one that a new user can read top to bottom when installing the project fresh. With that in mind I create the following outline at the top.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# blog-monorepo

This repo represents the personal blog infrastructure used to power blog.martin-haehnel.de.

## Overview

## Installation

## Setup

### Dev

### Prod

## HowTo

## Current Status

See ./docs/CHANGELOG.md.
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Overview&amp;quot; is where I will write about where what is in the repo and how it all fits together and how it works from a technical standpoint (i.e. &amp;quot;the &lt;code&gt;blog-api&lt;/code&gt; is a hono app&amp;quot;). This might need to move below &amp;quot;Installation&amp;quot; and &amp;quot;Setup&amp;quot;, but for now it helps me to organize my thoughts, so I want to write it first.&lt;/li&gt;
&lt;li&gt;&amp;quot;Installation&amp;quot; explains, well, how to install the apps contained within this repo, when the repo has been freshly cloned.&lt;/li&gt;
&lt;li&gt;&amp;quot;Setup&amp;quot; explains how to get the apps running in a way that allows them to run in a local dev env and in prod (i.e. what runs on blog.martin-haehnel.de). The &amp;quot;Prod&amp;quot; part will also include how to setup the project in Coolify.&lt;/li&gt;
&lt;li&gt;&amp;quot;HowTo&amp;quot; How do I create a new migration? How do I run tests, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It was hard to write about my writing, while writing so I didn&#39;t actually write a commentary text here documenting my though process while doing the thing.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; But what came to mind just now is that &lt;strong&gt;the idea of this cleanup is to turn the blog repo public at some point in the future&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Anyway, to end this blog post, here&#39;s the new handwritten Overview section as it stands right now:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# blog-monorepo

This repo represents the personal blog infrastructure used to power blog.martin-haehnel.de.

## Overview

### JavaScript

This repo is made up of several &amp;quot;apps&amp;quot; that are all used in concert to power this blog:

- apps/blog - the [Eleventy](https://www.11ty.dev/)-powered Blog
- apps/blog-api - the dynamic parts of the blog (like favs and the guestbook) are implemented here, but also the plumbing to get (and resize) images (on the fly) from object storage

These apps are using the JavaScript echosystem and are powered by [pnpm](https://pnpm.io/), a nice npm replacement with [built-in monorepo support](https://pnpm.io/workspaces).

You&#39;ll find the following files on the root of the repo pertaining to pnpm:

- `package.json` - mostly for repo-level scripts, linting and formatting
- `pnpm-lock.yaml` - the pnpm-version of a lockfile
- `pnpm-workspace.yaml` - monorepo specific file, to tell pnpm where our &amp;quot;packages&amp;quot; (the apps making up the repo) live. It also includes the &amp;quot;catalog&amp;quot; for shared dependencies (this helps keep them on the same version, [pnpm docs](https://pnpm.io/catalogs))

There are package.json files in the `blog-api` and `blog` app folders, too.

To keep the code readable we use [eslint](https://eslint.org) (`eslint.config.js`) and [prettier](https://prettier.io) (`.prettierignore`, `.prettierrc`). For testing we use [Vitest](https://vitest.dev). To enforce these tools we use [Husky](https://typicode.github.io/husky/) so that commits need to pass our coding standards (that&#39;s what the `.husky` dir is about).

### Docker

We use [Docker](https://www.docker.com) to containerize the blog. In the local dev env we use a docker-compose file (`docker-compose.yml`) to run things. On prod, we use [Coolify](https://coolify.io). To simulate prod (i.e. to test the build process locally), we have another docker-compose file called `docker-compose.single.yml`.

There is a single Dockerfile (called `Dockerfile.single` for historical reasons). This is a multistep Dockerfile, which first builds the blog and then copies the results into the image. The container built from that image runs the migration tool [node-pg-migrate](https://salsita.github.io/node-pg-migrate/) (to make sure the DB is up to date) and then starts [Caddy](https://caddyserver.com) to serve the static files built by Eleventy and the blog-api (f.x. favs/guestbook/media routes).

The `.dockerignore` file limits the &amp;quot;Build context&amp;quot; by excluding files and folders ([docker&#39;s docs](https://docs.docker.com/offload/optimize/#dockerignore-files)).

Apart from that there is a `docker` directory which holds docker-specific files (like the `entrypoint.single.sh`) and configuration files relevant in a docker context (like for Caddy).

### Misc.

#### Files

- `AGENTS.md` this is a file meant to inform a Coding Agent (like Microsoft&#39;s Copilot or Open AI&#39;s Codex or whatever) about the repo ([more info](https://agents.md)).
- `CHANGELOG.md` a file keeping track what was done when, following the [keepachangelog.com](https://keepachangelog.com/en/1.0.0/) format
- `.env.1password` this holds plaintext env vars (like the MEDIA_BASE_URL should I ever want to run this blog on a different domain) and secrets using (1Password references) which work by using the 1Password cli ([1Password&#39;s docs](https://developer.1password.com/docs/cli/secrets-scripts)).

#### Folders

- `scripts` a place for various small scripts (i.e. to test or debug something)
- `docs` a mixed bag of files documenting ongoing projects, todos and similar
&lt;/code&gt;&lt;/pre&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Something I commented on in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/writing-about-coding-writing-about-writing/&quot;&gt;Writing About Coding&amp;comma; Writing About Writing&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo: More Cleanup

        https://blog.martin-haehnel.de/2025/11/28/whiledo-more-cleanup/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1462 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/27/dailydogo1462/" />
      <updated>2025-11-27T21:25:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/27/dailydogo1462/</id>
      <content type="html">&lt;p&gt;DailyDogo 1462 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the corner of a room, belly up.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a02dfe4dc2e1f1c24113cebe671fe99b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1462 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo: Mini-Cleanup Session



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/27/whiledo-mini-cleanup-session/" />
      <updated>2025-11-27T17:38:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/27/whiledo-mini-cleanup-session/</id>
      <content type="html">&lt;p&gt;I had like 20 minutes so I thought I just do a little cleanup. The situation in the blog repo is absolutely mental: Since I &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/&quot;&gt;moved from cloudflare to a docker-compose based setup&lt;/a&gt; and then just yesterday to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/&quot;&gt;a single Dockerfile based setup&lt;/a&gt;, there is lots of lose ends. Here&#39;s (part of) the situation in all its gory detail:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Screenshot of a monorepo in VS Code showing the folder structure. The root contains directories such as .github, .husky, .vscode, .wrangler, apps (with blog, blog-api, and cloudflare-blog-api inside), docker, docs, node_modules, scripts, and todos. Various configuration files like docker-compose.yml, Dockerfiles, Caddyfile, package.json, pnpm files, and README.md are also visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a21f992d4465dcff64e6d1cb000e73bf.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;First things first: I&#39;ll get rid of the &lt;code&gt;cloudflare-blog-api&lt;/code&gt; folder, as this is not used anymore. And also the &lt;code&gt;.wrangler&lt;/code&gt; folder can go. I&#39;ll make sure that I don&#39;t accidentally delete anything important, but I never actually got around to backfill tests for it, otherwise there&#39;s nothing of importance here. Delete! The &lt;code&gt;.github&lt;/code&gt; folder can go, too as I build my stuff on Coolify.&lt;/p&gt;
&lt;p&gt;So that was the easy part. Next I&#39;ll look at the &lt;code&gt;docs&lt;/code&gt; dir. These have been WIP-Documents mostly to remember where I was with the whole move thing. What I want to keep is the &lt;code&gt;CHANGELOG.md&lt;/code&gt; which follows &lt;a href=&quot;https://keepachangelog.com/en/1.0.0/&quot;&gt;the format spec&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At the moment the first few lines read like this:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;#&lt;/span&gt; Changelog&lt;/span&gt;

All notable changes to this project will be documented in this file.

The format is based on &lt;span class=&quot;token url&quot;&gt;[&lt;span class=&quot;token content&quot;&gt;Keep a Changelog&lt;/span&gt;](&lt;span class=&quot;token url&quot;&gt;https://keepachangelog.com/en/1.0.0/&lt;/span&gt;)&lt;/span&gt;.

&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;##&lt;/span&gt; [Unreleased]&lt;/span&gt;

&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;###&lt;/span&gt; Removed&lt;/span&gt;

&lt;span class=&quot;token list punctuation&quot;&gt;-&lt;/span&gt; removed .wrangler, .github and cloudflare-blog-api folders

&lt;span class=&quot;token title important&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;##&lt;/span&gt; [2.0.0] - 2025-11-26 - Single-Image Coolify Deployment&lt;/span&gt;
[…]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Most of these files are obsolete, as most of the stuff is already done and documented in the changelog (or as blog posts) so I delete most of them. The only file kind of important is &lt;code&gt;NEW_SETUP.md&lt;/code&gt; as it includes info on how to run the new Single-Image-Approach (described &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/&quot;&gt;here&lt;/a&gt;). That we&#39;ll keep and move its contents in some form to the &lt;code&gt;README.md&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Alright Time&#39;s up! Not that much done, but hey: It wasn&#39;t nothing either.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo: Mini-Cleanup Session

        https://blog.martin-haehnel.de/2025/11/27/whiledo-mini-cleanup-session/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Zero Downtime Deploys, At Last



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/" />
      <updated>2025-11-26T21:46:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-11-27 - Added SelfHosting tag&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A cropped screenshot from the app Uptime Kuma showing two rows. One row has the text &amp;amp;quot;Blog (docker compose)&amp;amp;quot; on the left, with a bunch of green pill shaped symbols with four reds in the middle, denoting some downtime. The second row has the text &amp;amp;quot;Blog (single image)&amp;amp;quot; with only green symbols.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ef5e64ac595046b4bf419a4b20c590e8.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This is just a short note to document how my current blog is deployed with zero downtime. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/&quot;&gt;When I moved my blog from Cloudflare to my own server and Coolify&lt;/a&gt; I was somewhat dismayed to learn that Coolify can&#39;t do zero downtime (rolling release, blue/green) deployments using docker-compose files. Which is a pity because that is a great little format to configure a set of services and their relationship to each other.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My website had about 65 seconds of downtime just now, because coolify can’t do zero downtime deployments with a docker compose project. My blog consists of a db, a kv store, a node app and a server (for reverse proxying). I do not want to configure all of these services separately in this janky-er than the jankiest jank self hosted paas. I only have myself to blame as I didn’t recognize the downtime problem when moving the blog (and thought that I can live with the jank otherwise). Now I basically have to move again in some form or fashion.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(&lt;a href=&quot;https://hachyderm.io/@finn_matti/115606570559764507&quot;&gt;me on mastodon&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Well, I didn&#39;t leave coolify&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, but I have given in - as it seems the main problem is that docker doesn&#39;t expose docker-compose on its API, making it hard for tooling to make use of compose files and have now stopped using docker-compose files.&lt;/p&gt;
&lt;p&gt;I now have the following setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;One Dockerfile for the blog, the api and the caddy server in front of them&lt;/li&gt;
&lt;li&gt;An external db (postgres) - managed by coolify&lt;/li&gt;
&lt;li&gt;An external kv (redis) - managed by coolify&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(With &amp;quot;external&amp;quot; I mean external to the Dockerfile.)&lt;/p&gt;
&lt;p&gt;Since I only have one image instead of a bunch of services, I can now use the Dockerfile strategy instead of the docker-compose one, giving me free zero downtime deploys (&lt;a href=&quot;https://coolify.io/docs/knowledge-base/rolling-updates&quot;&gt;coolify docs&lt;/a&gt;).&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;which is still pretty janky... I still respect the heck out of it! The sheer amount of features it has is impressive. It&#39;s just that its complexity shows in the amount of care some fundamental things get. Like saving the configuration of a resource doesn&#39;t always work. Really? That&#39;s what I mean. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Zero Downtime Deploys, At Last

        https://blog.martin-haehnel.de/2025/11/26/zero-downtime-deploys-at-last/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1461 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/26/dailydogo1461/" />
      <updated>2025-11-26T21:36:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/26/dailydogo1461/</id>
      <content type="html">&lt;p&gt;DailyDogo 1461 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her usual corner, under a curtain. Her back paws are perfectly stacked on top of each other.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8fb6618dfd7c68623e743f0c41e5c5b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1461 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1460 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/25/dailydogo1460/" />
      <updated>2025-11-25T21:43:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/25/dailydogo1460/</id>
      <content type="html">&lt;p&gt;DailyDogo 1460 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying with her head under a couch. A couch leg is visible. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e11baf9d0a4c4a48f852f94fc7d94b19.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1460 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1459 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/24/dailydogo1459/" />
      <updated>2025-11-24T19:17:26Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/24/dailydogo1459/</id>
      <content type="html">&lt;p&gt;DailyDogo 1459 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing upright with her front paws against a man&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/68d6d4086f03071a7bd8ec74bb0be478.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1459 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My New On-Demand Image Resizing Pipeline for Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/" />
      <updated>2025-11-23T19:37:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-02-08 - Fixed a link and updated code blocks&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Don&#39;t get me wrong: I love using &lt;a href=&quot;https://www.11ty.dev&quot;&gt;Eleventy&lt;/a&gt;. I am benefiting so much of its little and big conveniences and generally agree with its philosophy: Stability over features. Predictability over flashiness.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; That being said, I grew increasingly grumpy about the long build times of my blog: &lt;a href=&quot;https://hachyderm.io/@finn_matti/115570504247751704&quot;&gt;20 minutes and more&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The longer I have to deal with 20 min+ builds for my website (it just has lots of images - served remotely from an object storage - by this point that eleventy-fetch and elventy-img have to go through) the more I am unsatisfied with the setup I have come up with for myself.&lt;/p&gt;
&lt;p&gt;In theory, images should be downloaded/resized once. In practice cache invalidation and build pipeline limitations (and me not having the time to solve it properly - but I do have time to wait 20 minutes per deploy? Huh.) mean that instead of waiting around 3 mins I wait way longer.&lt;/p&gt;
&lt;p&gt;I love #eleventy, but I do sometimes feel the trade-off of using an ssg over a dynamic blog solution like #ghost…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I recently went my own way when it comes to how the images for this blog are being generated. I had heard about &lt;a href=&quot;https://images.coollabs.io&quot;&gt;Images by CoolLabs&lt;/a&gt;, but didn&#39;t want to pay another 5€ per month and I also had the additional challenge that I liked how &lt;a href=&quot;https://www.11ty.dev/docs/plugins/image/&quot;&gt;Eleventy-img&lt;/a&gt; replaced simple &lt;code&gt;img&lt;/code&gt; elements with &lt;code&gt;picture&lt;/code&gt; elements with &lt;code&gt;srcsets&lt;/code&gt; and everything!&lt;/p&gt;
&lt;p&gt;So I built my own resizing api! This uses &lt;a href=&quot;https://sharp.pixelplumbing.com&quot;&gt;sharp&lt;/a&gt; - which is used by Eleventy-img internally also. I had a good starting point for doing this, because my images are served from an s3 compatible bucket through an API-Endpoint. So any &lt;code&gt;GET&lt;/code&gt; request hitting anything in &lt;code&gt;/media&lt;/code&gt;, like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;actually gets the resource - if it exists - from S3 without exposing the S3 bucket itself. With Eleventy-img that means that the images were fetched on build, transformed three times - 1400 (for social media), 640 (for desktop), 320 (for mobile) and then cached. I had written about this approach: &lt;a href=&quot;https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/&quot;&gt;How To Use eleventy-img &amp;lpar;To Optmize Images In Eleventy&amp;rpar; With Caching &amp;lpar;To Keep Build Times Low&amp;rpar; On Cloudflare Pages &amp;lpar;Which Can&amp;apos;t Cache Optimized Images Out Of The Box&amp;rpar;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I said, Eleventy-Img turns these image variants into a full-fledged picture element, which is something I wanted to keep. Well, it turns out, you totally can use only that part of Eleventy-img! The &lt;a href=&quot;https://github.com/11ty/eleventy-img/blob/main/src/generate-html.js&quot;&gt;generateHTML&lt;/a&gt; function is exported and you can totally use it!&lt;/p&gt;
&lt;p&gt;But first here&#39;s the little API&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Hono &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;hono&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; Env &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;../env&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; sharp &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;sharp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; createHash &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;crypto&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; mkdir &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fs/promises&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; existsSync &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; join &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;path&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

type Variables &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Env&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; app &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Hono&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;Bindings&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Env&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; Variables&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Variables &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Cache directory for optimized images&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;CACHE_DIR&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;IMAGE_CACHE_DIR&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;.cache/images&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Supported image formats&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;SUPPORTED_FORMATS&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;png&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;avif&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
type ImageFormat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;typeof&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;SUPPORTED_FORMATS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;number&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Allowed widths (prevent abuse)&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;ALLOWED_WIDTHS&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;320&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;640&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;768&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1024&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1920&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Generate cache key for resized image
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCacheKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; number&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; hash &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;createHash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;md5&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;path&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;width &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;original&quot;&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;format &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;original&quot;&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;digest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;hex&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Get cache file path
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCachePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;cacheKey&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;CACHE_DIR&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;cacheKey&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;format&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Ensure cache directory exists
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ensureCacheDir&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;existsSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;CACHE_DIR&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;mkdir&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;CACHE_DIR&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;recursive&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Check if image should be processed
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;isImagePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; boolean &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;.(jpe?g|png|webp|gif|avif)$&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Get content type for format
 */&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getContentType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; string &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;types&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Record&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;string&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; string&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;jpeg&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;jpg&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;webp&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;png&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/png&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;avif&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/avif&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;gif&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/gif&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; types&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;format&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;application/octet-stream&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/**
 * Serve media files from storage with on-demand image optimization
 * Supports query parameters: ?w=640&amp;amp;format=webp
 */&lt;/span&gt;
app&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/*&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;c&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; env &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;env&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; Env&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; storage &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;storage&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; bucket &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;storageBucket&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Extract path from URL (remove /media/ prefix)&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;req&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/media/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Parse query parameters for image optimization&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; widthParam &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;req&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;w&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; formatParam &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;req&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; ImageFormat &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Validate width parameter&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; requestedWidth &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; widthParam &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;parseInt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;widthParam&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; width &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;
		requestedWidth &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;ALLOWED_WIDTHS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;requestedWidth&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
			&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; requestedWidth
			&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Validate format parameter&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; format &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;
		formatParam &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;SUPPORTED_FORMATS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;formatParam&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
			&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; formatParam
			&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// If no optimization requested or not an image, serve original&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;width &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;format&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;isImagePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; stream &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; storage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;bucket&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; stat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; storage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;statObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;bucket&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; contentType &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;
				stat&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;metaData&lt;span class=&quot;token operator&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;content-type&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;application/octet-stream&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;stream &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; any&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
					&lt;span class=&quot;token string-property property&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; contentType&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
					&lt;span class=&quot;token string-property property&quot;&gt;&quot;Cache-Control&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;public, max-age=31536000, immutable&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; any&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;code &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;NoSuchKey&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;code &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;NotFound&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Not found&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;404&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
			console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Media fetch error:&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; error&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Internal server error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Generate cache key and path&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; outputFormat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; format &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Default to webp&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cacheKey &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCacheKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; outputFormat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cachePath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCachePath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cacheKey&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; outputFormat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Check if cached version exists&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;existsSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;fs/promises&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; cachedImage &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cachedImage&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getContentType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outputFormat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;Cache-Control&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;public, max-age=31536000, immutable&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;X-Image-Cache&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;hit&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Fetch original image from storage&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; stream &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; storage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;bucket&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Convert stream to buffer&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;chunks&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; Buffer&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; chunk &lt;span class=&quot;token keyword&quot;&gt;of&lt;/span&gt; stream&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			chunks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;chunk&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; buffer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Buffer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;chunks&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Process image with sharp&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sharp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;buffer&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Resize if width specified&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;resize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;withoutEnlargement&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;fit&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inside&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Convert format&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;switch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outputFormat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;webp&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
				transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;webp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;quality&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;85&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
				transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;jpeg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;quality&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;progressive&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;png&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
				transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;png&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;compressionLevel&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;9&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;avif&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
				transformer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;avif&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;quality&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;80&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; optimizedBuffer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; transformer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Save to cache&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ensureCacheDir&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;fs/promises&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;cachePath&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; optimizedBuffer&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Return optimized image&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;optimizedBuffer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getContentType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;outputFormat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;Cache-Control&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;public, max-age=31536000, immutable&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token string-property property&quot;&gt;&quot;X-Image-Cache&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;miss&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; any&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;code &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;NoSuchKey&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;code &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;NotFound&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Not found&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;404&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Image optimization error:&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; error&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; c&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Internal server error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; app&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So we accept a GET and a couple of query params. Example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;amp;format=jpeg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This specifies a width of 320 and a format of jpeg. We calculate a hash so we don&#39;t need to do the work twice and if we haven&#39;t done so already resize/convert the image before responding with it. We use &lt;a href=&quot;https://github.com/minio/minio-js&quot;&gt;minio-js&lt;/a&gt; to connect to the object storage and as I said sharp to do the resizing.&lt;/p&gt;
&lt;p&gt;The fun part is that we can use this API now to create picture elements on build that are made functional by this API at runtime! For that we have to add some configuration to &lt;code&gt;eleventy.config.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Import generateHTML from eleventy-img&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; generateHTML &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;@11ty/eleventy-img&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Transform HTML to add responsive image attributes using eleventy-img&#39;s generateHTML&lt;/span&gt;
eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addTransform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;vpsImageOptimization&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// Only process HTML files&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;outputPath &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;outputPath&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;endsWith&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; content&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; baseUrl &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://blog.martin-haehnel.de&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;// Transform img tags pointing to https://blog.martin-haehnel.de/media/uploads/ to include srcset&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
    &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;img&#92;s+([^&gt;]*?)src=[&quot;&#39;]([^&quot;&#39;]*&#92;/media&#92;/uploads&#92;/[^&quot;&#39;?]+)[&quot;&#39;]([^&gt;]*?)&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;gi&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;match&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; _beforeSrc&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; src&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token comment&quot;&gt;// Extract the media path (remove any existing query params or base URL)&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; mediaPath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; src&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^https:&#92;/&#92;/[^/]+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;?.*$&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token comment&quot;&gt;// Extract alt text&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; altMatch &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; match&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;alt=[&quot;&#39;]([^&quot;&#39;]*)[&quot;&#39;]&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; alt &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; altMatch &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; altMatch&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token comment&quot;&gt;// This mimics the structure returned by the Image() function&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; metadata &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;webp&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=320&amp;amp;format=webp&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=320&amp;amp;format=webp 320w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;320&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=640&amp;amp;format=webp&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=640&amp;amp;format=webp 640w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;640&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=1400&amp;amp;format=webp&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=1400&amp;amp;format=webp 1400w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;jpeg&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=320&amp;amp;format=jpeg&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=320&amp;amp;format=jpeg 320w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;320&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=640&amp;amp;format=jpeg&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=640&amp;amp;format=jpeg 640w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;640&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=1400&amp;amp;format=jpeg&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;srcset&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;baseUrl&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;mediaPath&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;?w=1400&amp;amp;format=jpeg 1400w&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token literal-property property&quot;&gt;sourceType&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;image/jpeg&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token comment&quot;&gt;// Use eleventy-img&#39;s generateHTML to create proper picture element&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;generateHTML&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;metadata&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        alt&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;sizes&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;loading&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lazy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;decoding&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;async&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This so-called &amp;quot;vpsImageOptimization&amp;quot; - because I started doing it this way when I moved the blog from cloudflare - is a &lt;a href=&quot;https://www.11ty.dev/docs/transforms/&quot;&gt;Transform&lt;/a&gt;, meaning this changes what actually gets output to the output directory. And in this case we use a regex to match &lt;code&gt;img&lt;/code&gt; tags that have a relative url starting with &lt;code&gt;media/uploads&lt;/code&gt;. We then build the metadata the &lt;code&gt;generateHTML&lt;/code&gt; function expects but we are using the on-demand API endpoint. Since Eleventy-img itself is not called no images are being fetched at build time and now images are being transformed at build time either. The end result is this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;picture&amp;gt;&amp;lt;source type=&amp;quot;image/webp&amp;quot; srcset=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;amp;amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;amp;amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;amp;amp;format=webp 1400w&amp;quot; sizes=&amp;quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&amp;quot;&amp;gt;&amp;lt;source type=&amp;quot;image/jpeg&amp;quot; srcset=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;amp;amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;amp;amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;amp;amp;format=jpeg 1400w&amp;quot; sizes=&amp;quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;A black and white corgi cardigan lying in her dog bed, with her head on top of its rim. It looks like it would be uncomfortable, but she seems quite relaxed.&amp;quot; loading=&amp;quot;lazy&amp;quot; decoding=&amp;quot;async&amp;quot; src=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;amp;amp;format=jpeg&amp;quot; width=&amp;quot;1400&amp;quot; height=&amp;quot;undefined&amp;quot; srcset=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;amp;amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;amp;amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;amp;amp;format=jpeg 1400w&amp;quot; sizes=&amp;quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&amp;quot;&amp;gt;&amp;lt;/picture&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The best part? A build of this blog now takes three minutes instead of 20 since images do not need to be fetched remotely and resized/converted on every build.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;That&#39;s my take on its philosophy to be precise. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;My API is served behind a reverse proxy so that the static site as well as its dynamic bits can be served from the same (sub)domain. Read more &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#Setup&quot;&gt;here&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In theory this should&#39;ve not happened using the build-time strategy in the first place, but I could never get it to respect the cache inside Docker/Coolify reliably. Now that isn&#39;t an issue anymore. And by design. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        My New On-Demand Image Resizing Pipeline for Eleventy

        https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1458 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/23/dailydogo1458/" />
      <updated>2025-11-23T19:01:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/23/dailydogo1458/</id>
      <content type="html">&lt;p&gt;DailyDogo 1458 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed, with her head on top of its rim. It looks like it would be uncomfortable, but she seems quite relaxed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a3097241dd688eb3ee212e1e45e9bac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1458 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Move Of The Blog Is Happening Now



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/" />
      <updated>2025-11-23T15:47:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-11-27 - Added SelfHosting tag&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I will now try to go-live with the self-hosted blog version. I expect some small amount of downtime when the dns cutover happens, but I don&#39;t expect any problems otherwise. The VPS is relatively big. So even if instead of the usual 5 people now 500 people happen to look at the new site, that should still be totally fine, just as it was before.&lt;/p&gt;
&lt;p&gt;If everything goes wrong: I&#39;ll post updates on &lt;a href=&quot;https://hachyderm.io/@finn_matti&quot;&gt;my mastodon&lt;/a&gt;. See you on the other side!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It seems like the move was a success and I am now running this thing from my own VPS.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;The everything went better than expected meme.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/03ae2f310a3619ca3b3acace72db20f6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The Move Of The Blog Is Happening Now

        https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1457 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/22/dailydogo1457/" />
      <updated>2025-11-22T20:57:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/22/dailydogo1457/</id>
      <content type="html">&lt;p&gt;DailyDogo 1457 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan running through relatively high snow towards the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2ffd704156095a72ef716745dedc9a54.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1457 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1456 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/21/dailydogo1456/" />
      <updated>2025-11-21T22:52:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/21/dailydogo1456/</id>
      <content type="html">&lt;p&gt;DailyDogo 1456 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking though the snow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b0a6865816776591c8dd0d7352810a8b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1456 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1455 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/20/dailydogo1455/" />
      <updated>2025-11-20T21:12:44Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/20/dailydogo1455/</id>
      <content type="html">&lt;p&gt;DailyDogo 1455 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in her dog bed and looking to the left upper side towards something outside the frame.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2693afbb9b3fa3ab28e0bff296ebbd55.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1455 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1454 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/19/dailydogo1454/" />
      <updated>2025-11-19T20:21:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/19/dailydogo1454/</id>
      <content type="html">&lt;p&gt;DailyDogo 1454 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan photographed from above. She is sleeping with her head under a curtain.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e119a128e4feec845f5dd296a47e9f7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1454 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1453 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/18/dailydogo1453/" />
      <updated>2025-11-18T20:20:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/18/dailydogo1453/</id>
      <content type="html">&lt;p&gt;DailyDogo 1453 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping with her head against the rim of her dog bed, tongue out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/00b74981539435947732224fbe76446a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1453 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1452 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/17/dailydogo1452/" />
      <updated>2025-11-17T19:13:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/17/dailydogo1452/</id>
      <content type="html">&lt;p&gt;DailyDogo 1452 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a half rolled out carpet, next to a dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/41bf7c7ab7b4cfe748404c711f1d3b25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1452 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1451 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/16/dailydogo1451/" />
      <updated>2025-11-16T21:51:07Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/16/dailydogo1451/</id>
      <content type="html">&lt;p&gt;DailyDogo 1451 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping underneath and behind a curtain (full of dog hair). Only her snout and her front paws are visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d16b5abdb3322ef6928b28cd5c022593.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1451 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1450 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/15/dailydogo1450/" />
      <updated>2025-11-15T21:30:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/15/dailydogo1450/</id>
      <content type="html">&lt;p&gt;DailyDogo 1450 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing in the middle of a hiking trail in a wintery forest.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/45a713dca0b3bcefb54089c0089c2ce7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1450 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1449 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/14/dailydogo1449/" />
      <updated>2025-11-14T18:38:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/14/dailydogo1449/</id>
      <content type="html">&lt;p&gt;DailyDogo 1449 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan carrying a dog toy and watching the photographer enthusiastically.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8a730db4a3c653c83d435536b5de93a0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1449 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Rough Roadmap Of Moving The Blog



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/" />
      <updated>2025-11-14T14:31:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-11-23 - It&#39;s done! Read more &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/the-move-of-the-blog-is-happening-now/&quot;&gt;here&lt;/a&gt;. Also added the Blog tag.&lt;/li&gt;
&lt;li&gt;2025-11-27 - Added SelfHosting tag&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I am not updating the blog as much, because the few brain cycles I have left for doing &amp;quot;blog things&amp;quot; are spent moving the blog off of Cloudflare and onto OVHCloud (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/&quot;&gt;previously&lt;/a&gt;). But I thought I create a little post noting down how I hope this can go, although, as we all know: Life is what happens to us while we are making other plans.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Deadline: I would love to have the blog moved by end of year. That leaves 7 weekends  counting this one to get it done.&lt;/li&gt;
&lt;li&gt;What needs to be moved exactly: The static site, the media assets (mostly images), the api, the database (and, technically, the kv storage).&lt;/li&gt;
&lt;li&gt;KISS: I am not trying to change to many bits at the same time here. I could see using a small laravel app for the API, etc. But I am not touching this before the move is done.&lt;/li&gt;
&lt;li&gt;Local/Prod parity: I wanted to run my local blog dev env close to what gets deployed later.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following is a status quo snapshot.&lt;/p&gt;
&lt;h2 id=&quot;status-quo&quot;&gt;Status Quo&lt;/h2&gt;
&lt;h3 id=&quot;static-site&quot;&gt;Static Site&lt;/h3&gt;
&lt;p&gt;This is already done! I have managed to setup &lt;a href=&quot;https://coolify.io&quot;&gt;coolify&lt;/a&gt; in such a way that it builds the static bits of my blog on push just as Cloudflare does it.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Coolify provides an app for Github&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, which basically does all of the heavy lifting here. I &lt;em&gt;think&lt;/em&gt; I&#39;m getting to the point where using Eleventy-Img to resize images on build becomes too heavy - although I have to investigate more, why my caches are seemingly not eternal.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;api&quot;&gt;API&lt;/h3&gt;
&lt;p&gt;This was a little reimplementation project. Most of this was done using Github Copilot.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; Not too hard, but since the DB has changed (from sqlite-esque D1 to Postgres) and the runtime has changed, too (from CF&#39;s own worker runtime to node) there was some work.&lt;/p&gt;
&lt;p&gt;I am still using &lt;a href=&quot;https://hono.dev&quot;&gt;hono&lt;/a&gt; (now with &lt;a href=&quot;https://github.com/honojs/node-server&quot;&gt;the node adapter&lt;/a&gt;). The reason I am using postgres, is because I don&#39;t know a lot about the js ecosystem, had the need for a db migration tool, saw that &lt;a href=&quot;https://github.com/salsita/node-pg-migrate&quot;&gt;node-pg-migrate&lt;/a&gt; is well maintained and I was also curious to use Postgres in a project.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;db&quot;&gt;DB&lt;/h3&gt;
&lt;p&gt;Done! Or at least done as long as no one is adding new favs/likes/guestbook entries. Hehe. But there exists now a robust workflow to export from D1, convert to Postgres (using &lt;a href=&quot;https://pgloader.io&quot;&gt;pgloader&lt;/a&gt;) compatible sql and using node-pg-migrate to create a &amp;quot;seed&amp;quot; migration with all the data from the Cloudflare db (so it gets imported once).&lt;/p&gt;
&lt;h3 id=&quot;kv&quot;&gt;KV&lt;/h3&gt;
&lt;p&gt;Not sure that this actually needed for the size of my blog. But I have some rate limiting, some caching and similar things in place and spun up a Redis for this, now that Redis is maybe not evil anymore? Did I get that right?&lt;/p&gt;
&lt;h3 id=&quot;object-storage-assets&quot;&gt;Object Storage/Assets&lt;/h3&gt;
&lt;p&gt;The big reason I was having trouble finding a hosting company I liked was that I didn&#39;t want to handle my images. Having compatibility with S3 is great. As it allows using plugins for Obsidian to upload pictures via drag and drop. I also have a crazy iOS shortcut that relies on the fact that I can just upload an image to an S3 bucket. There is also &lt;a href=&quot;https://github.com/minio/minio&quot;&gt;minio&lt;/a&gt;, but that will be a quest for another time. So I just synced the files from one bucket to the other using &lt;a href=&quot;https://cyberduck.io&quot;&gt;Cyberduck&lt;/a&gt;. Didn&#39;t even need to make my hands dirty for that one.&lt;/p&gt;
&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;p&gt;The whole thing is a relatively simple pair of docker-compose files (one for the local env, one for coolify/prod) and some Dockerfiles (for the api, the blog (on prod), the rest is all coming from the public registry).&lt;/p&gt;
&lt;p&gt;One important piece of the new setup is, that I needed to emulate pages functions which I relied upon to make my images and my api available etc. If you don&#39;t know: A pages function is a filesystem based routing system, where you can put a file under a path like &lt;code&gt;functions/media/[[all]].js&lt;/code&gt; and in there it could look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export async function onRequestGet(ctx) {
	const path = new URL(ctx.request.url).pathname.replace(&amp;quot;/media/&amp;quot;, &amp;quot;&amp;quot;);
	const file = await ctx.env.MEDIA.get(path);
	if (!file) return new Response(null, { status: 404 });
	return new Response(file.body, {
		headers: { &amp;quot;Content-Type&amp;quot;: file.httpMetadata.contentType },
	});
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What that did, was to accept a URL like &lt;code&gt;https://blog.martin-haehnel.de/media/bla.png&lt;/code&gt; and turn it into a request towards the media bucket. In this way the bucket itself was never exposed and everything was delivered coming from the same domain. Somewhat similar things were done for the api (a separate Cloudflare worker) as well.&lt;/p&gt;
&lt;p&gt;To make the same routes available using my new setup I had to put the static site and the api behind a reverse proxy (&lt;a href=&quot;https://caddyserver.com&quot;&gt;Caddy&lt;/a&gt;) that deferred to the api or the static site container depending on the route.&lt;/p&gt;
&lt;pre class=&quot;language-Caddyfile&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-Caddyfile&quot;&gt;:80 {
	# API routes - proxy to blog-api
	handle /api/* {
		reverse_proxy blog-api:8080
	}

	# Media routes - proxy to blog-api
	handle /media/* {
		reverse_proxy blog-api:8080
	}

	# Static files
	handle /* {
		root * /srv
		try_files {path} {path}/ /404.html
		file_server
	}

	# Logging
	log {
		output stdout
		format console
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In the new system the media routes are also handled by the api which in turns talks to OVH&#39;s S3 bucket. In the prod env Coolify has its own proxy for all its services handling certificates (so that&#39;s why it reads port 80 up there).&lt;/p&gt;
&lt;p&gt;At the moment the VPS version of the blog runs on a temporary subdomain in parallel with the legacy deployment.&lt;/p&gt;
&lt;h2 id=&quot;so-whats-missing&quot;&gt;So what&#39;s missing?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;More testing and a lot more cleanup&lt;/li&gt;
&lt;li&gt;Cost check - I want to wait for my first monthly bill, so I have a no-load-on-the-blog baseline (I opted for a pretty beefy VPS that has predictable pricing but I don&#39;t know yet what the object storage will cost me)&lt;/li&gt;
&lt;li&gt;DNS cutover - make the VPS available under its intended domain&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So not that much! I am hopeful I can get this done very soon. Amazing to think that I will actually host my own stuff again instead of relying on Cloudflare.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Well, not exactly, but it is a deploy on push. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;[[Where To Go From Here|Yeah, yeah...]] &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have no reason to have caches for the remote requests and the resizing work that hava ttl as these images are unchanging. And if they ever would change, I can just invalidate the cache by hand. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I suspect this could be the end of your interest. I wrote about my stance on LLMs on this blog a few times. Most recently &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/&quot;&gt;AI As A Solved Sudoku Puzzle&lt;/a&gt;. To me this was a good case to use an LLM for as it was - as I see it - mostly grunt work. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I imagine for so few tables and so little load the differences between postgres and say mariadb, will be minusqle. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Rough Roadmap Of Moving The Blog

        https://blog.martin-haehnel.de/2025/11/14/rough-roadmap-and-status-quo-of-moving-the-blog/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1448 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/13/dailydogo1448/" />
      <updated>2025-11-13T21:39:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/13/dailydogo1448/</id>
      <content type="html">&lt;p&gt;DailyDogo 1448 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her bed and resting her head on its raised border while watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1e441cc9f88999d091cb823913029060.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1448 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1447 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/12/dailydogo1447/" />
      <updated>2025-11-12T20:17:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/12/dailydogo1447/</id>
      <content type="html">&lt;p&gt;DailyDogo 1447 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan holding a dog toy in her mouth, ready to play.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8311980b3ae9818a95542c1a377431f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1447 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1446 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/11/dailydogo1446/" />
      <updated>2025-11-11T20:53:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/11/dailydogo1446/</id>
      <content type="html">&lt;p&gt;DailyDogo 1446 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan hiding(?) under a dog blanket in her dog bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/10cee1a967f1e1e99053bda58ab983ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1446 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1445 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/10/dailydogo1445/" />
      <updated>2025-11-10T20:37:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/10/dailydogo1445/</id>
      <content type="html">&lt;p&gt;DailyDogo 1445 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan doing a sploot on the floor and looking up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d1e8d285cd3bec4190cc9f4793ee8357.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1445 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1444 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/09/dailydogo1444/" />
      <updated>2025-11-09T20:50:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/09/dailydogo1444/</id>
      <content type="html">&lt;p&gt;DailyDogo 1444 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan licking a carpet (for some reason).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a94789b3a1b3f0f58cb673880a878d99.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1444 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1443 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/08/dailydogo1443/" />
      <updated>2025-11-08T20:24:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/08/dailydogo1443/</id>
      <content type="html">&lt;p&gt;DailyDogo 1443 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan photographed mid-jump. She is makig a crazy face with her tongue liking her nose.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3faa9ee0055a1effe2f9b617e7fdaf27.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1443 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1442 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/07/dailydogo1442/" />
      <updated>2025-11-07T21:45:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/07/dailydogo1442/</id>
      <content type="html">&lt;p&gt;DailyDogo 1442 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying with her head under a couch. A couch leg is visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e8e732776d0bd27a590fdf51c712d3c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1442 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1441 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/06/dailydogo1441/" />
      <updated>2025-11-06T21:15:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/06/dailydogo1441/</id>
      <content type="html">&lt;p&gt;DailyDogo 1441 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan trying to pull a dog toy held by the photographers feet.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/aa334fe148148511c012d453d8db181b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1441 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Another Try (at Self Hosting)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/" />
      <updated>2025-11-06T08:19:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-11-06 - This had the wrong tag. I also added a clarification about ssh, after &lt;a href=&quot;https://micro.blog/lmika/77384706&quot;&gt;this useful post from @lmika&lt;/a&gt; and added a callout to make it easier to find the steps I took so far to secure the server.&lt;/li&gt;
&lt;li&gt;2025-11-27 - Added SelfHosting tag&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;If you&#39;re here to check what I might&#39;ve missed when securing the VPS: Look for the paragraph starting with &amp;quot;Setting up the VPS wasn&#39;t that hard.&amp;quot;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I&#39;m in the middle of moving my things off of Cloudflare and on to a VPS with OVHCloud. OVH is a European (French to be precise) Hosting company that offers everything I need and is maybe not as problematic as Cloudflare. I wrote about this recently &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/&quot;&gt;Where To Go From Here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I initially ruled out OVH because I somehow perceived them as too expensive. But as is often the case: Publishing something - even if nobody reacts - gives some clarity. And so I now am fine with paying OVH around 15€/month for a VPS capable of running &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt;, all the pieces to run my blog (static site, small api, db, kv), and maybe some other stuff and some s3 buckets for assets/media/backups.&lt;/p&gt;
&lt;p&gt;Coolify itself is a pretty nifty tool which hopefully alleviates the need for a &amp;quot;managed&amp;quot; cloud solution. It&#39;s an app that makes it easy to deploy on push but it can do a bunch more things. One of them is it provides also a web app with which I can monitor the state of things without having to climb onto the server using ssh. It&#39;s not like I&#39;m against that. I&#39;m a programmer by trade, so my daily work consists of using the shell to get things done. But I always felt that GUIs for administration of operations is just easier and less error prone.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Setting up the VPS wasn&#39;t that hard. The last time I had to do it from scratch was a while ago, but I basically followed the advice of OVH: change SSH port, only allow SSH using keys&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;, block ports on the server/use a firewall, install fail2ban&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;, setup a firewall at the hoster level, since ufw and docker don&#39;t actually work together all that well (&lt;a href=&quot;https://github.com/chaifeng/ufw-docker&quot;&gt;TIL&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Of course, not having been self hosting for a while means I am almost certainly unaware of other security problems.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;That&#39;s why I prefer to use VS Code&#39;s Kubernetes Plugin or the Rancher Web UI over using kubectl directly, for example. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m using 1Password&#39;s SSH Agent btw. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I setup fail2ban for coolify using &lt;a href=&quot;https://www.mustafaramx.com/post/how-to-secure-coolify-server-with-fail2ban&quot;&gt;this guide&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;So in other words: If you know of something I should maybe be doing: I would be grateful if you&#39;d let me know! &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Another Try (at Self Hosting)

        https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1440 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/05/dailydogo1440/" />
      <updated>2025-11-05T20:01:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/05/dailydogo1440/</id>
      <content type="html">&lt;p&gt;DailyDogo 1440 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/60df33fe7c9b75a086d94470976d37ea.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1440 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1439 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/04/dailydogo1439/" />
      <updated>2025-11-04T20:42:45Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/04/dailydogo1439/</id>
      <content type="html">&lt;p&gt;DailyDogo 1439 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor next to a dog bone and watching up towards the camera over her right shoulder.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/815cbe5240c44560ee900083a8e4151a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1439 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1438 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/03/dailydogo1438/" />
      <updated>2025-11-03T19:46:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/03/dailydogo1438/</id>
      <content type="html">&lt;p&gt;DailyDogo 1438 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in her dog bed, looking somewhat defiantly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4fed23ccfb7fc0367c17c52bad1185eb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1438 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1437 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/02/dailydogo1437/" />
      <updated>2025-11-02T20:18:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/02/dailydogo1437/</id>
      <content type="html">&lt;p&gt;DailyDogo 1437 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in her dog bed and smilling into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a2e622e5cbe4ca16aadc66567e951bfc.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1437 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1436 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/11/01/dailydogo1436/" />
      <updated>2025-11-01T21:59:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/11/01/dailydogo1436/</id>
      <content type="html">&lt;p&gt;DailyDogo 1436 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in a dog bed, her head twisted ninety degrees to side so she can eat her dog bone.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd4b6309d733e06266ccbf7a1251671d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1436 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1435 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/31/dailydogo1435/" />
      <updated>2025-10-31T21:59:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/31/dailydogo1435/</id>
      <content type="html">&lt;p&gt;DailyDogo 1435 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in front of a door and looking confused because she just woke up. Her tongue is slightly out and she just stares straight ahead.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ad33a351556c4ed8b759772083a28ed3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1435 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1434 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/30/dailydogo1434/" />
      <updated>2025-10-30T20:13:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/30/dailydogo1434/</id>
      <content type="html">&lt;p&gt;DailyDogo 1434 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back next to a balcony door.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7273759931b97d2dfbffd476f91bf7fb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1434 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1433 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/29/dailydogo1433/" />
      <updated>2025-10-29T21:05:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/29/dailydogo1433/</id>
      <content type="html">&lt;p&gt;DailyDogo 1433 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan carrying a dog toy with a cow pattern in her mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c174ea7ae3af76db0b27f2a22a01d770.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1433 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1432 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/28/dailydogo1432/" />
      <updated>2025-10-28T18:33:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/28/dailydogo1432/</id>
      <content type="html">&lt;p&gt;DailyDogo 1432 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sniffing a man&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5477144d5e58a02a19296c97d50ad1cf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1432 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1431 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/27/dailydogo1431/" />
      <updated>2025-10-27T20:29:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/27/dailydogo1431/</id>
      <content type="html">&lt;p&gt;DailyDogo 1431 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor, daydreaming.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3148b47d132b3f3df5558e5799913bf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1431 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Purity Based Argumentation



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/" />
      <updated>2025-10-27T16:22:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-28 - Corrected a couple of things and restructured the note&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h3 id=&quot;in-the-context-of-manifestos&quot;&gt;In The Context Of Manifestos&lt;/h3&gt;
&lt;p&gt;This probably where this thread started.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/stubs/&quot;&gt;Thoughts on &amp;quot;Manifesto for a Humane Web&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;I&#39;m all for binding those &amp;quot;How?&amp;quot;s I would have liked to hear more about to a higher order thinking, but I am not so interested to be sorted into good or bad by adhering to either all of the categories or none, without being told what is needed to even make one of these categories a real thing on a planetary scale (is that the goal?) and what is done to make it worth it to try for that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;in-the-context-of-ai-llms&quot;&gt;In The Context Of &amp;quot;AI&amp;quot;/LLMs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;Vulnerable Thoughts Around LLMS and generative AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In theory I feel that keeping myself morally untouchable and staying &amp;quot;pure&amp;quot; is interesting, but just as I tried to express &lt;a href=&quot;https://blog.martin-haehnel.de/stubs/&quot;&gt;when I was talking about manifestos&lt;/a&gt; and their harsh delineation between good and bad according to a standard they define without outlining the practical steps to make this a reality, I find myself reaching for the same here: Purity is theoretically interesting, but practically life happens elsewhere and so it is more a question of degree, if anything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;The Way We Use LLMs Makes All The Difference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;This text is not about changing society through political action, though. It is about exploring what could be a way to live within our current situation that neither loses sight of the complexities of life, by proclaiming a set of maxims, nor throws out the baby with the bath water, by being a cynical, egotistical jerk. The former leads to a kind of &amp;quot;purity discourse&amp;quot; that doesn&#39;t help any real person. If anything, it may make you feel bad, if you can&#39;t live up to the manifesto&#39;s demands. And the latter lives in a vacuum where nobody else matters, which is mostly sad and infuriating for anyone with a heart.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A little clarification here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/&quot;&gt;A Personal Note On My Interest In LLMs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;I do not claim to have all the answers with regard to how to deal with LLMs either, but I do strongly believe that throwing yourself into all aspects of an issue is a great way to learn more about it. I have also advocated before that I think it&#39;s a good idea to avoid a purity-based approach to contested topics (you either do everything right, or you&#39;re a monster isn&#39;t a good approach). &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;I did this even in my last post on LLMs&amp;period;&lt;/a&gt; I think it is fine and necessary to overstep from time to time - within reason.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And elaborated on it here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;Those Recent Puzzmo Articles about Claude Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;It&#39;s important to note that my article tried to figure out a framework that - all else being equal - has a sanity based approach to judging the use of a technology/product that exists, right now. Given that me, the individual, can&#39;t really change how the current crop of &amp;quot;AI&amp;quot; was made, I can at least find a way to interact with them that makes sense and isn&#39;t &amp;quot;purity based&amp;quot;.&lt;/p&gt;
&lt;p&gt;I think this &amp;quot;anti-purity framework of judgment approach&amp;quot; is still a good idea. Normal people - including you - will use LLMs, sometimes you&#39;ll overstep and use them for frivolous things. Within reason, that&#39;s fine.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Same post, a little later:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In an unpublished article about LLMs I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Will performatively writing purity based arguments against LLMs do anything, though? No. But there is an important difference. Being open to the idea that LLMs could be changed ever so slightly to something better could do at least &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;in-the-context-of-leaving-microblog&quot;&gt;In The Context Of Leaving Microblog&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html&quot;&gt;By Association&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Now, I had written very recently about my interest to not play this &amp;quot;moral purity&amp;quot;-based game anymore (not that I ever really played it, but that is besides the point), in which we proclaim a certain world view or stance as morally superior, avant-garde or whatever and start to judge what&#39;s happening in the world. My point with this was and is that we ought to construct and view - or at least make possible to trace - the complex network that makes up the state of any (local) reality in our moment in time. I want less reductionist views (although I freely admit that heuristics and simplifications and abstractions are important actors in a text and are not to be ignored either) and more connective tissue between manifesto-like expressions and details and steps on how to actually scale that for the planet or even &lt;em&gt;manifest it&lt;/em&gt; just for my local reality, here and now.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
      
      <echofeed:content type="html">
        Purity Based Argumentation

        https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Where To Go From Here



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/" />
      <updated>2025-10-27T16:17:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-29 - Reworded some things, fixed typos&lt;/li&gt;
&lt;li&gt;2025-11-06 - There is now a follow-up post of sorts: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/06/another-try-at-self-hosting/&quot;&gt;Another Try &amp;lpar;at Self Hosting&amp;rpar;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;An overview of why I feel &lt;a href=&quot;https://en.wiktionary.org/wiki/stunlock&quot;&gt;stunlocked&lt;/a&gt; when it comes to my current technology choices.&lt;/p&gt;
&lt;h2 id=&quot;hosting&quot;&gt;Hosting&lt;/h2&gt;
&lt;h3 id=&quot;is&quot;&gt;Is&lt;/h3&gt;
&lt;p&gt;At the moment this blog is hosted on Cloudflare. Cloudflare is problematic&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://drewdevault.com/2025/09/24/2025-09-24-Cloudflare-and-fascists.html&quot;&gt;Cloudflare bankrolls fascists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://xn--gckvb8fzb.com/thoughts-on-cloudflare/&quot;&gt;Thoughts on Cloudflare&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.devever.net/~hl/cloudflare&quot;&gt;Cloudflare considered harmful&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;ought&quot;&gt;Ought&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Either: An affordable cloud provider with less problematic politics/history&lt;/li&gt;
&lt;li&gt;Or: A JamStack provider&lt;/li&gt;
&lt;li&gt;Or: Self hosting using a VPS/shared hoster/etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;reasons-is-ought&quot;&gt;Reasons Is != Ought&lt;/h3&gt;
&lt;h4 id=&quot;cloud-provider&quot;&gt;Cloud Provider&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;None of the hyperscalers are any better ethically or cheaper or easier to use&lt;/li&gt;
&lt;li&gt;I looked at a lot of European-based cloud providers&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; and most of them were either pretty expensive or were not set up to handle static sites with some dynamic stuff on top (Jamstack approach)&lt;/li&gt;
&lt;li&gt;In any case: The move from Cloudflare to another Cloud Provider is not 1:1
&lt;ul&gt;
&lt;li&gt;I find this rather surprising because my blog merely consists of
&lt;ul&gt;
&lt;li&gt;one &amp;quot;worker&amp;quot; (for the API, powering the Guestbook and couple of other things)&lt;/li&gt;
&lt;li&gt;a &amp;quot;pages&amp;quot; project (for the static site)&lt;/li&gt;
&lt;li&gt;a KV store (f.x. for favs)&lt;/li&gt;
&lt;li&gt;an object store (for images, etc.)&lt;/li&gt;
&lt;li&gt;a database&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;you&#39;d think that these building blocks would be available, but it seems most cloud providers either don&#39;t have all the pieces or are prohibitively expensive&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, all things considered using any other Cloud provider, is either only half the solution (and f.x. a VPS and S3 object storage would still be needed) or it&#39;s too expensive.&lt;/p&gt;
&lt;h4 id=&quot;jamstack-provider&quot;&gt;JamStack Provider&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Main player here is &lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt;, which is US-based
&lt;ul&gt;
&lt;li&gt;Since I have already some dynamic features and plan to build more, their pricing means that I would run up against the limit of even their $9 plan &lt;em&gt;relatively&lt;/em&gt; soon-ish (&lt;a href=&quot;https://www.netlify.com/pricing/#calculator&quot;&gt;calculator here&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;It seems to have everything I&#39;d want, except s3-compatible storage (their &lt;a href=&quot;https://docs.netlify.com/build/data-and-storage/netlify-blobs/&quot;&gt;blobs&lt;/a&gt; product doesn&#39;t seem to offer any, which is a requirement, because my current image workflow depends on it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;One interesting option is &lt;a href=&quot;https://www.statichost.eu&quot;&gt;statichost&lt;/a&gt;, but a vps/object storage is required to make it work
&lt;ul&gt;
&lt;li&gt;and at that point I can just host everything on a vps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Vercel is trump shit&lt;/li&gt;
&lt;li&gt;Render uses Cloudflare&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;self-hosting&quot;&gt;Self-Hosting&lt;/h4&gt;
&lt;p&gt;Most-likely I&#39;d want to host myself going forward. A simple docker-compose file and a few containers would make sure things run and I &lt;em&gt;might&lt;/em&gt; even use something like &lt;a href=&quot;https://coolify.io&quot;&gt;Coolify&lt;/a&gt; to do so.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hetzner
&lt;ul&gt;
&lt;li&gt;I kind of want to avoid using US-based hosters (again, see &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html&quot;&gt;Shift To Europe&lt;/a&gt;), so Hetzner initially seemed like a good choice&lt;/li&gt;
&lt;li&gt;Hetzner is Germany-based (good) and it&#39;s not as much of an open-and-shut case as with Cloudflare, but you can find some information giving me weird vibes around the topics Ukraine and Russia and treatment of customers in general&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Hetzner&quot;&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/hetzner/comments/13cpk3p/beware_ukraine_clients/&quot;&gt;New Ukrainialn Users can&#39;t register?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/selfhosted/comments/1cr53ui/my_brief_experience_with_hetzner_perhaps_a_few/&quot;&gt;An example reddit thread&lt;/a&gt; (&lt;a href=&quot;https://www.reddit.com/r/selfhosted/comments/1cr53ui/comment/l3z2be2/&quot;&gt;Hetzner has answered in the comments&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;technically, there is a lot right about a Hetzner, they even have &lt;a href=&quot;https://www.hetzner.com/storage/object-storage/&quot;&gt;object storage&lt;/a&gt; (even if it&#39;s not &lt;em&gt;that&lt;/em&gt; cheap), but the vibes are off&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Contabo
&lt;ul&gt;
&lt;li&gt;Contabo &lt;em&gt;seemed&lt;/em&gt; like a good alternative until you notice how much pricing bullshit they are doing (24 months commitment, but presented as monthly prices, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Shared hosters
&lt;ul&gt;
&lt;li&gt;NearlyFreeSpeech
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nearlyfreespeech.net/services/pricing&quot;&gt;I love their pricing model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;US-based&lt;/li&gt;
&lt;li&gt;no docker&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Uberspace
&lt;ul&gt;
&lt;li&gt;Germany-based&lt;/li&gt;
&lt;li&gt;[some kind of docker... maybe?](https://github.com/katakombi/udocker-uberspace&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://uberspace.de/en/product/#prices&quot;&gt;I hate their pricing model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Too many others to mention
&lt;ul&gt;
&lt;li&gt;either no Object Storage or weird pricing, or not EU based, or, or, or&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;git&quot;&gt;Git&lt;/h2&gt;
&lt;h3 id=&quot;is-2&quot;&gt;Is&lt;/h3&gt;
&lt;p&gt;At the moment all my projects live on Github. Github is Microsoft and Microsoft is not exactly EU-based. Github has also become a symbol for &amp;quot;AI&amp;quot; hate.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I am not as much motivated to leave Github behind, but I kind of am motivated to see what else is out there and use less Big-Tech stuff.&lt;/p&gt;
&lt;h3 id=&quot;ought-2&quot;&gt;Ought&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Either: Another service that offers private repos, ci&lt;/li&gt;
&lt;li&gt;Or: Self-hosted Git&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;reasons-is-ought-2&quot;&gt;Reasons Is != Ought&lt;/h3&gt;
&lt;h4 id=&quot;other-hosters&quot;&gt;Other hosters&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://codeberg.org&quot;&gt;Codeberg&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;very cool project&lt;/li&gt;
&lt;li&gt;you don&#39;t really get &lt;a href=&quot;https://docs.codeberg.org/getting-started/faq/#how-about-private-repositories%3F&quot;&gt;private repos&lt;/a&gt;, though&lt;/li&gt;
&lt;li&gt;I think they are somewhat unclear on how to handle LLMs, &lt;a href=&quot;https://codeberg.org/forgejo/discussions/issues/366&quot;&gt;example topic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://sourcehut.org&quot;&gt;sourcehut&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;initially I thought: &amp;quot;that&#39;s it&amp;quot;&lt;/li&gt;
&lt;li&gt;but I think that &lt;a href=&quot;https://drewdevault.com/2025/03/17/2025-03-17-Stop-externalizing-your-costs-on-me.html&quot;&gt;this AI rant&lt;/a&gt; from one of the maintainers is way over the top&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tangled.org&quot;&gt;tangled&lt;/a&gt; and &lt;a href=&quot;https://radicle.xyz&quot;&gt;radicle&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;two cool decentralized projects&lt;/li&gt;
&lt;li&gt;haven&#39;t spent enough time with them though and they seem to just be starting out&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://codefloe.com&quot;&gt;codefloe&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;runs forgejo&lt;/li&gt;
&lt;li&gt;has ci&lt;/li&gt;
&lt;li&gt;I hate their pricing model (donations based with a &amp;quot;free tier&amp;quot;)&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Others
&lt;ul&gt;
&lt;li&gt;there are &lt;a href=&quot;https://docs.codeberg.org/getting-started/what-is-codeberg/#alternatives-to-codeberg&quot;&gt;some other forgejo hosters&lt;/a&gt;, but all of them had something that I didn&#39;t like or something that was missing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;self-host&quot;&gt;Self-Host&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://forgejo.org&quot;&gt;forgejo&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;made by the people behind Codeberg&lt;/li&gt;
&lt;li&gt;probably the only real viable alternative right now if I want to self-host my code&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;gitlab and gitea are disqualified for one reason or another (like too much complexity to self-host comfortably, &lt;a href=&quot;https://forgejo.org/compare-to-gitea/#why-was-forgejo-created&quot;&gt;weird for profit companies taking over domains and trademarks&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;h3 id=&quot;is-3&quot;&gt;Is&lt;/h3&gt;
&lt;p&gt;I am 100% on Apple devices nowadays. With that comes a certain vendor lock-in, as you might imagine. I am not super happy with recent &amp;quot;bending of knees&amp;quot; moves made by the company towards a US-government that can only be described as corrupt.&lt;/p&gt;
&lt;h3 id=&quot;ought-3&quot;&gt;Ought&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Find replacements for all hardware and services from Apple&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;reasons-is-ought-3&quot;&gt;Reasons Is != Ought&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The mobile landscape looks absolutely atrocious
&lt;ul&gt;
&lt;li&gt;as long as the only viable alternative is Android, I&#39;ll stay on iOS thank you very much&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;a Linux laptop is certainly possible; I had one at work (and have had Linux machines as my daily driver), but I am not in the market for a new hobby
&lt;ul&gt;
&lt;li&gt;this might change if Apple becomes openly racist for example, at the moment (it seems) they are just playing along - which is bad enough (if not surprising)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I don&#39;t want to repeat this all the time, but I do not agree with all of the points made or the way in which they are made in the following sources. But getting into this would make the post much much longer. I will generally say that some of these points are made in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/&quot;&gt;a purity based manner&lt;/a&gt;, which I generally do not agree with. If &amp;quot;nuance&amp;quot; wouldn&#39;t have such bad connotations, I would say that some of them lack nuance. But at the same time: &lt;a href=&quot;https://mgx.me/the-watchers&quot;&gt;Let&#39;s not try to become &amp;quot;a watcher&amp;quot; either.&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Content-Warning, I guess: This person believes by changing the title of the page (often displayed in the tab title of your browser) to amusing or offensive fake titles, they get to inform us that not turning off JavaScript is bad. As per my other footnote: I am not getting into this. But be warned. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I actually would love to use more &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html&quot;&gt;European stuff&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;E.g. I&#39;m pretty sure &lt;a href=&quot;https://www.ovhcloud.com/en-ie/&quot;&gt;OVHCloud&lt;/a&gt; could probably do all of this, but not for a price I&#39;m willing to pay. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I am myself a German, but I live in Finland which shares 1340km of border with Russia. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I am not making a judgement here if the hate is justified or not, except to say that I think &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/&quot;&gt;purity&lt;/a&gt; is bs. I am not getting into &lt;em&gt;this&lt;/em&gt; discussion here either, you can find some of my thoughts &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;EDIT (2025-10-29): To be clear, because I just re-read it: I have 1000% sympathy for the bs &amp;quot;AI&amp;quot; companies are pulling in the field of crawling data and not respecting consent (robots.txt or similar) while doing so. But &amp;quot;I will never work with you again&amp;quot;? I don&#39;t know. Having re-read it, though: It&#39;s actually not as bad a take as I remembered it, it&#39;s just that I do LLM assisted coding and wouldn&#39;t feel good about making platform owners mad by doing so. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;ll probably have to write a separate post about this, but: Just ask for a reasonable amount already! &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Where To Go From Here

        https://blog.martin-haehnel.de/2025/10/27/where-to-go-from-here/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1430 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/26/dailydogo1430/" />
      <updated>2025-10-26T20:10:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/26/dailydogo1430/</id>
      <content type="html">&lt;p&gt;DailyDogo 1430 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a couch and a carpet. Her nose is buried under a dog toy. She is staring straight ahead.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9f538f337fbe8583ef085c808f307a7e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1430 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1429 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/25/dailydogo1429/" />
      <updated>2025-10-25T17:55:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/25/dailydogo1429/</id>
      <content type="html">&lt;p&gt;DailyDogo 1429 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sniffing the sand next to a stone. In the background there is a canal, leading through a semi-urban landscape.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c1bbddd64090e353c4dfecceb9369b6f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1429 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1428 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/24/dailydogo1428/" />
      <updated>2025-10-24T17:33:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/24/dailydogo1428/</id>
      <content type="html">&lt;p&gt;DailyDogo 1428 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under a couch table and watching up to the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b2358d0ed887e02d78396edda35148e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1428 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1427 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/23/dailydogo1427/" />
      <updated>2025-10-23T19:48:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/23/dailydogo1427/</id>
      <content type="html">&lt;p&gt;DailyDogo 1427 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan on her back enjoying being scratched.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/54ae9fc7e096a7cbc19cfb541752dc15.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1427 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1426 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/22/dailydogo1426/" />
      <updated>2025-10-22T18:30:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/22/dailydogo1426/</id>
      <content type="html">&lt;p&gt;DailyDogo 1426 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and watching to the side, as if an intrigueing thought just entered her head.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/53feb89bdef54924c92d7f7d67045a52.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1426 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1425 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/21/dailydogo1425/" />
      <updated>2025-10-21T19:09:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/21/dailydogo1425/</id>
      <content type="html">&lt;p&gt;DailyDogo 1425 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan siting next to a man&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f21145dbc6b477133fbead82efad4481.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1425 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Writing About Coding, Writing About Writing



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/21/writing-about-coding-writing-about-writing/" />
      <updated>2025-10-21T18:55:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/21/writing-about-coding-writing-about-writing/</id>
      <content type="html">&lt;p&gt;Another thought around &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like You&amp;apos;re Ron Jeffries&lt;/a&gt;: I really liked &lt;a href=&quot;https://micro.blog/lmika/75163000&quot;&gt;what Leon Mika expressed to me&lt;/a&gt; about &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/whiledo-is-now-a-tag/&quot;&gt;WhileDo&lt;/a&gt; posts:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Thanks! I’ll try. Don’t know about you, but I struggle with the amount of writing that goes into these.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And that got me thinking about the artificiality of these kinds of posts. Coding - as are many other activities - are much less sequential or in any case logically sequenced - as it might seem. Weaving into the work of coding another activity of writing about coding changes the whole &amp;quot;experimental arrangement&amp;quot; which also means that reading these reports has to be done with a grain of salt: It is, just like the How-to, a constructed text.&lt;/p&gt;
&lt;p&gt;And &lt;em&gt;this&lt;/em&gt; made me think about &amp;quot;writing about writing&amp;quot; and how much that is also a weird thing that purports to be merely about its subject but in actuality is actually changing its subject by writing about it and then is doing so in the same medium.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ronjeffries.com/articles/-w025/y/v/&quot;&gt;This Ron Jeffries quote&lt;/a&gt; actually recognizes this as a feature (not a bug) of incorporating writing into coding:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My pair, such as it is, is the article I write while programming. The writing gives me the chance to see the code from more distance and gives my mind time to come up with alternatives, issues, ideas[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But this implies that writing about writing - the act of reflecting on (digital) paper - makes a difference and changes the object under observation - which in turn means we can&#39;t really know about writing in itself.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Writing About Coding, Writing About Writing

        https://blog.martin-haehnel.de/2025/10/21/writing-about-coding-writing-about-writing/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Idea Mining Patterns



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/" />
      <updated>2025-10-21T18:28:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/</id>
      <content type="html">&lt;p&gt;Something that came to mind when thinking about my recent post &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/&quot;&gt;How To Figure Out What You&amp;apos;re Not Good At&lt;/a&gt;.  I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think you can credibly invert what the writer Sasha Chapin is saying[...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I think this might be an example of a pattern on how to use ideas to have other ideas. What I did there was a simple inversion of an interesting observation. But maybe there are other techniques we can use to mine Ideas for other ideas.&lt;/p&gt;
&lt;p&gt;I think this is something that Hillel Wayne describes in his Computer Things Newsletter titled &lt;a href=&quot;https://buttondown.com/hillelwayne/archive/making-memes/&quot;&gt;Making Memes&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And I&#39;ve been thinking of a kind of article I commonly write:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Here&#39;s some examples of something.&lt;/li&gt;
&lt;li&gt;I am going to give that thing a name.&lt;/li&gt;
&lt;li&gt;Now that we have a name, let&#39;s discuss it as its own topic.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Examples: edge case poisoning, mimicry, cleverness vs insight, constructive and predicative data.&lt;/p&gt;
&lt;p&gt;Doing this creates a (minor) branch of human knowledge, in the form of a topic, that then has a distinct existence independent of the original examples. It&#39;s more transmissible than the information, but also makes the contained information more transmissible by acting as a handle to it. It&#39;s easier to find information on &amp;quot;patterns&amp;quot; because we have a topic of patterns. Topics can also be expanded, like how there&#39;s now &amp;quot;testing patterns&amp;quot; and &amp;quot;performance patterns&amp;quot;; discussed independently of the information, like with &amp;quot;patterns are just missing language features&amp;quot; discourse; and related to other topics, like &amp;quot;&#39;patterns are missing language features&#39; means &#39;patterns are an example of mimicry.&#39;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I also have another one of these called &amp;quot;Aufpfropfung&amp;quot;. This is a concept taken from French philosopher Jacques Derrida as understood by me through a text by Uwe Wirth when I was still studying history of science and technology.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Wikipedia knows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Grafting or graftage is a horticultural technique whereby tissues of plants are joined so as to continue their growth together. The upper part of the combined plant is called the scion (/ˈsaɪən/) while the lower part is called the rootstock. The success of this joining requires that the vascular tissues grow together&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In my simplified understanding I understand &amp;quot;Aufpfropfung&amp;quot; as a way of recontextualizing an idea. What happens if you take the idea of industrialization and its destructive potential and graft it onto a fantasy world? Mordor and the orcs. What happens if you graft the idea of an experimental system onto the work of writing itself? (I think:) Writing as an epistemological practice becomes visible. What happens if you &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/blog-as-zettelkasten-browser/&quot;&gt;graft the idea of a notes system onto the idea of a blog&lt;/a&gt;? I hope to find out. Not every grafting is successful.&lt;/p&gt;
&lt;p&gt;These are some of the patterns I could think of in the short amount of time I gave myself to write this down. There are probably more, but now these patterns and the idea that there might be a catalog of them are written down.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Aufpfropfung als Figur des Wissens  in der Kultur- und Mediengeschichte, from the book Kulturgeschichte als Mediengeschichte (oder vice versa?), 2006 &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Idea Mining Patterns

        https://blog.martin-haehnel.de/2025/10/21/idea-mining-patterns/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          AI As A Solved Sudoku Puzzle



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/" />
      <updated>2025-10-21T17:37:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/</id>
      <content type="html">&lt;p&gt;Just a short note on the fact that what I see in myself when using AI&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; is similar to solving a Sudoku puzzle vs. seeing a solved Sudoku puzzle: A solved Sudoku is much easier to validate as solving an unsolved puzzle is. Which is why watching &lt;a href=&quot;https://crackingthecryptic.com&quot;&gt;Simon or Mark&lt;/a&gt; solve a Sudoku puzzle or watching amazing Slay The Spire streamers like &lt;a href=&quot;https://baalorlord.tv&quot;&gt;Baalorlord&lt;/a&gt; is possible without having as much skill as these people have since verifying good play/solving ability is much, much easier than doing it oneself.&lt;/p&gt;
&lt;p&gt;So sometimes I think about my AI coding agent as a (statistical) Sudoku solver: It is much easier to look at its solution and say thumbs up or thumbs down.&lt;/p&gt;
&lt;p&gt;There is a bunch more to say:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How does this fact relate to the &lt;a href=&quot;https://www.coursera.org/articles/illusion-of-competence&quot;&gt;Illusion of Competence&lt;/a&gt;?&lt;/li&gt;
&lt;li&gt;How does it relate to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Mere-exposure_effect&quot;&gt;Mere-Exposure-Effect&lt;/a&gt; (being exposed to something more often tends to make us think about it positively, therefore makes us remember it more)?&lt;/li&gt;
&lt;li&gt;How does it relate to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Illusion_of_explanatory_depth&quot;&gt;Illusion of Knowledge&lt;/a&gt; and is there a (useful) difference between this and the &amp;quot;Illusion of Competence&amp;quot;?&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect&quot;&gt;Dunning–Kruger effect&lt;/a&gt;, etc. etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anyway. I think it&#39;s useful to recognize that any time you&#39;re using an LLM, you&#39;re letting it solve metaphorical Sudoku puzzles for you and that means you don&#39;t solve them. You might think &amp;quot;I could&#39;ve solved this&amp;quot;, but you really didn&#39;t solve it.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; Does this mean LLMs are complete and utter garbage? I don&#39;t know. I have found that I am not &lt;em&gt;that&lt;/em&gt; interested in all kinds of (metaphorical) Sudoku, I&#39;m only into some of them. Which means that I am totally fine with not solving all Sudoku puzzles that there would be to solve. Metaphorically speaking. I feel like that very much aligns with my favorite quote on the matter:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;You know what the biggest problem with pushing all-things-AI is? Wrong direction.
I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(The author of that Quote Joanna Maciejewska wrote this back on &lt;a href=&quot;https://x.com/AuthorJMac/status/1773679197631701238&quot;&gt;Twitter&lt;/a&gt; but is nowadays on &lt;a href=&quot;https://indiepocalypse.social/@AuthorJMac&quot;&gt;Mastodon&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;In my case, I am not that interested in &amp;quot;solving&amp;quot; (learning) all the ins and outs of our Kubernetes-based infrastructure. I know enough to recognize a &amp;quot;solved Sudoku&amp;quot; when I see it in this area, though. And I am learning, despite it all, more and more with every solved problem. This is true in other areas as well. Having an LLM solve some of the Sudokus that you only need to verify feels like it takes a weight of your shoulder to focus on the Sudokus you actually want to solve.&lt;/p&gt;
&lt;p&gt;One last point to this surprisingly long &amp;quot;short note&amp;quot;: I also think that having a breakthrough and playing with it is very often - or does it just feel like that? - a lot more instructive than not solving something and not knowing how to proceed - although I will concede that struggling for a while &lt;em&gt;and then having a breakthrough feels amazing&lt;/em&gt;. Do I need to have that with everything though? I honestly don&#39;t know.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;For my general attitude towards AI/LLMs see this: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/&quot;&gt;Hub &amp;quot;AI and LLMs&amp;quot;&lt;/a&gt;. It&#39;s quite the opposite of being an uncritical person. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Or at least not alone. There is no shame in that, IMHO. Nobody is going to claim that the &lt;a href=&quot;https://www.jetbrains.com/help/idea/refactoring-source-code.html&quot;&gt;refactoring menu&lt;/a&gt; of JetBrains IDEs was a terrible idea. But you didn&#39;t do the refactoring by hand, if you&#39;ve used that menu either. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        AI As A Solved Sudoku Puzzle

        https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1424 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/20/dailydogo1424/" />
      <updated>2025-10-20T19:10:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/20/dailydogo1424/</id>
      <content type="html">&lt;p&gt;DailyDogo 1424 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor belly up. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/55d97ce830e98559e38d6d20e9793dcb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1424 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1423 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/19/dailydogo1423/" />
      <updated>2025-10-19T17:43:50Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/19/dailydogo1423/</id>
      <content type="html">&lt;p&gt;DailyDogo 1423 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking walking on a leash. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/584ceaca8e54f916fc6de76a3ae31cb5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1423 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Continueing With The Version Script



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/19/continueing-with-the-version-script/" />
      <updated>2025-10-19T11:23:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/19/continueing-with-the-version-script/</id>
      <content type="html">&lt;p&gt;In Yesterday&#39;s &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/back-at-it/&quot;&gt;Back At It&lt;/a&gt; post I made it to the first minimal version of the script. A lot of things are still missing. Here&#39;s what it can and can&#39;t do:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Can do:
&lt;ul&gt;
&lt;li&gt;Run &lt;code&gt;git log --pretty=oneline --follow ...&lt;/code&gt; to capture the commit hashes pertaining to a particular commit&lt;/li&gt;
&lt;li&gt;Write the result by:
&lt;ul&gt;
&lt;li&gt;parsing the frontmatter block of a markdown file&lt;/li&gt;
&lt;li&gt;adding a hashes key to it&lt;/li&gt;
&lt;li&gt;writing it back to the markdown file&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Can&#39;t do yet (selection):
&lt;ul&gt;
&lt;li&gt;get and write hashes for more than one file&lt;/li&gt;
&lt;li&gt;take a folder and get all files within it&lt;/li&gt;
&lt;li&gt;extract from git&#39;s current worktree the folders/files that need a hashes update&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From those can&#39;t do yet items, I will try to tackle the first one now.&lt;/p&gt;
&lt;p&gt;I wonder how people would normally implement this. In PHP, particularly in the Symfony universe there is &lt;a href=&quot;https://symfony.com/doc/current/components/finder.html&quot;&gt;the Finder&lt;/a&gt; which is pretty handy when you have to find files by glob, etc. With this it&#39;s trivial to handle paths, etc. But I guess we&#39;ll do it by hand for now.&lt;/p&gt;
&lt;p&gt;And then I noticed that I got ahead of myself, as I hadn&#39;t even implemented that we can feed a (one) path to the script instead of hard-coding! Slower is better. As we start a new blog post here&#39;s the current situation in its entirety:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; execSync &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;child_process&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; fs &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fs&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; matter &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;gray-matter&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;tmp-post-versions.md&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; args &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;argv&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; isTesting &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; args&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;--testing&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; path &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; args&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;arg&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;arg&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;startsWith&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;--&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;isTesting&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;This script is only for testing purposes.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; gitLog &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCommitHashes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;Commits for post with path &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;path&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;:&#92;n&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; gitLog&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;gitLog&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Bye...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getCommitHashes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;execSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;git log --pretty=oneline --follow -- &quot;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;path&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;gitLog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; commitHashes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; gitLog
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; line&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// get first part (hash)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// remove empty lines&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Commit hashes for the post:&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; commitHashes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;//parse markdown file and write hashes to hashes key (add if not exists) of frontmatter&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; markdownContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; parsed &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;matter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;markdownContent&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hashes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hashes &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;commitHashes&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; matter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alright. This works if I call it with a file. To my surprise, it also works with a folder despite what man git-log is saying:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--follow
           Continue listing the history of a file beyond renames (works only for a single file).
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/a/43960010/12163256&quot;&gt;Trying to read this answer&lt;/a&gt; to a question about how &lt;code&gt;--follow&lt;/code&gt; works makes me realize that it&#39;s probably best to actually really only let &lt;code&gt;--follow&lt;/code&gt; handle a file, because what its trying to do is pretty complicated. That means we have to make sure we don&#39;t hand over folders to &lt;code&gt;git log --follow&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function isDir(path) {
	return fs.statSync(path).isDirectory();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And I just noticed an error. Or rather a bad naming choice leading to an error! I wrote:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const args = process.argv.slice(2);
//...
const path = args.filter((arg) =&amp;gt; !arg.startsWith(&amp;quot;--&amp;quot;));
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But &lt;code&gt;args&lt;/code&gt; is an array. Naming it &lt;code&gt;path&lt;/code&gt; implies a single path string, not an array of them. Things only worked thanks to type coercion. So it is now called &lt;code&gt;paths&lt;/code&gt; and you access the first (and only expected) path by doing &lt;code&gt;paths[0]&lt;/code&gt;. Great.&lt;/p&gt;
&lt;p&gt;Next, I&#39;ll allow multiple file paths, by introducing a loop... but maybe I should actually do a couple of things first:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;switch to eleventy&#39;s fork of gray-matter&lt;/li&gt;
&lt;li&gt;write hashes to their original files&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Task 1 is super easy and just means switching the package in the package.json and update. But then I see:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm update
 WARN  2 deprecated subdependencies found: rollup-plugin-inject@3.0.2, sourcemap-codec@1.4.8
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/issues/6707#issuecomment-1725203476&quot;&gt;TIL&lt;/a&gt; that you can find out who is depending on these deprecated subdependencies, by doing a:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm why rollup-plugin-inject
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But in my case it doesn&#39;t show anything. Weird. I had to run it inside one of my two &amp;quot;apps&amp;quot; dirs. That seems kind of counterproductive to using a monorepo (&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/&quot;&gt;as I do&lt;/a&gt;) with pnpm. Regardless I found the perps:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pnpm why rollup-plugin-inject
Legend: production dependency, optional only, dev only

d1-template /&amp;lt;redacted&amp;gt;/blog-monorepo/apps/cloudflare-blog-api

devDependencies:
@cloudflare/vitest-pool-workers 0.7.8
└─┬ wrangler 3.114.1
  └─┬ @esbuild-plugins/node-modules-polyfill 0.2.2
    └─┬ rollup-plugin-node-polyfills 0.2.1
      └── rollup-plugin-inject 3.0.2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So I guess as I am working on the blog and not its API I&#39;ll leave this for another time.&lt;/p&gt;
&lt;p&gt;Next problem! The README of the gray-matter fork is wrong about how to use the package it claims:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;usage&quot;&gt;Usage&lt;/h2&gt;
&lt;p&gt;Using CommonJS:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; matter &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;gray-matter&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or ESM:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; matter &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;gray-matter&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// OR&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; matter &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;gray-matter&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;But you have to use @11ty/gray-matter for it to work. &lt;a href=&quot;https://github.com/11ty/gray-matter/pull/1&quot;&gt;Smallest PR in the universe.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Alright. Phew.&lt;/p&gt;
&lt;p&gt;Now to the main attraction: Writing hashes to their original files. Easy peasy.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;gitLog&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; paths&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Bye...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;gitLog&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; markdownContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;

	fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;path&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; matter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alright. This went better than expected. I guess we just do the whole multiple files paths as well then? This means looping over the paths array instead of just handling the first one.&lt;/p&gt;
&lt;p&gt;Well... it was going too smoothly. I misunderstood how array merging in JS works. So hashes are not merged.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hashes:
  - 9402b41142602cd4a5f658646cf26944d7c7c04e
  - 10e0905f451c6a6e68ef6e0ea8146256bfb00e88
  - 9402b41142602cd4a5f658646cf26944d7c7c04e
  - 10e0905f451c6a6e68ef6e0ea8146256bfb00e88
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Example:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; args &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;--notMe&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;yes&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;shared&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; newArgs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;alsoThis&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;--meNotAlso&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;shared&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; merged &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;args&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;newArgs&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; concat &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; args&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;newArgs&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;merged&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;concat&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Both merged and concat print: &lt;code&gt;[&#39;--notMe&#39;,&#39;yes&#39;,&#39;shared&#39;,&#39;alsoThis&#39;,&#39;--meNotAlso&#39;, &#39;shared&#39;]&lt;/code&gt;. Which is bad. But &lt;a href=&quot;https://stackoverflow.com/a/38940354/12163256&quot;&gt;using a Set&lt;/a&gt; works beautifully:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; seted &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;args&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;newArgs&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;seted&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// [ &#39;--notMe&#39;, &#39;yes&#39;, &#39;shared&#39;, &#39;alsoThis&#39;, &#39;--meNotAlso&#39;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Great. In this way we can already feed the script and arbitrary number of file paths and the corresponding files are updated with their commit hashes in a deduplicated way.&lt;/p&gt;
&lt;p&gt;Next, I want to work on the &lt;code&gt;--worktree&lt;/code&gt; feature which is to say the feature that will check the current worktree for changed (markdown) files and add hashes to them.&lt;/p&gt;
&lt;p&gt;...Except that I don&#39;t. What I want to do is write some tests, as this script actually makes sense to be tested. Any time I have to interact with the ecosystem questions arise. Like, I was unsure how pnpm actually handles the setup I have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;root packge.json with all the shared packages
&lt;ul&gt;
&lt;li&gt;app/blog package.json&lt;/li&gt;
&lt;li&gt;app/api package.json&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If I don&#39;t want to manually maintain all versions in the &lt;code&gt;package.json&lt;/code&gt;s? Because I had done so until now. It turns out it&#39;s as easy as this:&lt;/p&gt;
&lt;p&gt;Root package.json&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;devDependencies&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;vitest&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;3.0.8&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sub package.json&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;devDependencies&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;vitest&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;workspace:*&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Except that didn&#39;t work! I guess it only works for packages within the monorepo itself. But thankfully the other option, using what they call a catalogue is not that much harder to use.&lt;/p&gt;
&lt;p&gt;So instead of doing things directly in the package.json, we do it in the &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;//&lt;span class=&quot;token punctuation&quot;&gt;...&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;catalog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;vitest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;3.0.8&quot;&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;&quot;@11ty/gray-matter&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^2.0.0&quot;&lt;/span&gt;
//&lt;span class=&quot;token punctuation&quot;&gt;...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And then we use this in the package.json instead of an explicit version range:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;devDependencies&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;vitest&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;catalog:&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;@11ty/gray-matter&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;catalog:&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I want to update my versions I just do it in the &amp;quot;catalog&amp;quot; instead of the &lt;code&gt;package.json&lt;/code&gt;. Works for me.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/19/continueing-with-the-version-script/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Anyway. We now have vitest available to us. Time to set it up! If I recall correctly JS tests are located next to the actual file as to avoid a duplicated folder hierarchy. So there isn&#39;t really anything to set up per se. Except adding a script to run tests in the &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	&lt;span class=&quot;token string-property property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
		&lt;span class=&quot;token string-property property&quot;&gt;&quot;test:script&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest scripts/post-versions.test.js&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;import { test, expect } from &amp;quot;vitest&amp;quot;;
import { isDir } from &amp;quot;./post-versions&amp;quot;;

test(&amp;quot;it return true&amp;quot;, () =&amp;gt; {
	expect(true).toBe(true);
});

test(&amp;quot;isDir function works&amp;quot;, () =&amp;gt; {
	const testDir = &amp;quot;scripts/test&amp;quot;;
	const testFile = &amp;quot;scripts/test/test-post-versions.md&amp;quot;;

	expect(isDir(testDir)).toBe(true);
	expect(isDir(testFile)).toBe(false);
});
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; run test:script

&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; blog-monorepo@0.1.0 test:script /Users/martinhahnel/Local/code/blog-monorepo
&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; vitest scripts/post-versions.test.js


 DEV  v3.0.8 /Users/martinhahnel/Local/code/blog-monorepo

stdout &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; scripts/post-versions.test.js
Script is running &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; debug mode. More verbose output enabled.

stderr &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; scripts/post-versions.test.js
Please provide the path to the post &lt;span class=&quot;token function&quot;&gt;file&lt;/span&gt; as an argument.

 ✓ scripts/post-versions.test.js &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt; tests&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; 1ms
   ✓ it &lt;span class=&quot;token builtin class-name&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;
   ✓ isDir &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; works

 Test Files  &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; passed &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
      Tests  &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt; passed &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
   Start at  &lt;span class=&quot;token number&quot;&gt;20&lt;/span&gt;:42:56
   Duration  281ms &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;transform 17ms, setup 0ms, collect 58ms, tests 1ms, environment 0ms, prepare 45ms&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

 PASS  Waiting &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;file&lt;/span&gt; changes&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;.
       press h to show help, press q to quit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Works! Alright, that&#39;s it for today!&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;They also mentioned &lt;a href=&quot;https://app.codemod.com/registry/pnpm/catalog&quot;&gt;this thing&lt;/a&gt; in their &lt;a href=&quot;https://pnpm.io/catalogs&quot;&gt;documentation&lt;/a&gt;, I&#39;ll have to try that sometime to move things to the catalog in a semi-automated fashion. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/19/continueing-with-the-version-script/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Continueing With The Version Script

        https://blog.martin-haehnel.de/2025/10/19/continueing-with-the-version-script/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1422 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/18/dailydogo1422/" />
      <updated>2025-10-18T20:25:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/18/dailydogo1422/</id>
      <content type="html">&lt;p&gt;DailyDogo 1422 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a couch side-eying into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d51dd9e3b7b86f7cc2309b6dd55888eb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1422 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Back At It



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/18/back-at-it/" />
      <updated>2025-10-18T15:21:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/18/back-at-it/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-18 - Added a footnote about 11ty&#39;s gray-matter fork&lt;/li&gt;
&lt;li&gt;2025-10-19 - Updated the last version of the writeHashesToFile to what I actually had finished with&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Back at it. We continue to work on the versioning system today that I wrote about in more detail in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/06/a-small-step/&quot;&gt;A Small Step&lt;/a&gt;. One thing that I didn&#39;t really think about is how the idea of having older versions would interact with the current version a lot. So let&#39;s do that now. From the last post, here&#39;s the rough idea again:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Write a script that adds all commit hashes that pertain to a certain blogpost to the frontmatter&lt;/li&gt;
&lt;li&gt;Read these hashes and - somehow - extract these older versions from the git history on building the site&lt;/li&gt;
&lt;li&gt;Build UI that allows switching from one version to another&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;One of the problems is that it is unclear when the script is supposed to run. The normal order of operations so far has been:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;write/code&lt;/li&gt;
&lt;li&gt;commit&lt;/li&gt;
&lt;li&gt;push&lt;/li&gt;
&lt;li&gt;(build + deploy)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Where does the - run script to add commit hashes to posts - fit in? And also: A new version in a weird way denotes an old version. Like if I update an older post, let&#39;s say I add something new to &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Post Hubs&lt;/a&gt;. That means that the version (the hash) before the current one should be part of the hashes. But that difference is only apparent after the current writing is done and committed. So we end up in a weird state, where we can&#39;t really tell when a new version exists... except if we compare with the current state of uncommitted changes! E.g.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;update post (implies a new version)&lt;/li&gt;
&lt;li&gt;run script (on the basis of the current working tree)&lt;/li&gt;
&lt;li&gt;commit&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I think that&#39;s it actually. I started that paragraph thinking we have an chicken and egg problem but instead we have a chicken and egg solution! And the good thing about this is that the script will only ever touch files that are changed in the current work tree. I think that means we can even use a git hook for it! Very nice. &lt;a href=&quot;https://stackoverflow.com/a/12802592/12163256&quot;&gt;This&lt;/a&gt; should do the trick. So two hooks.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;update post&lt;/li&gt;
&lt;li&gt;commit
&lt;ol&gt;
&lt;li&gt;pre-commit hook to create a .commit file&lt;/li&gt;
&lt;li&gt;post-commit hook
&lt;ol&gt;
&lt;li&gt;if .commit exists
&lt;ol&gt;
&lt;li&gt;run script&lt;/li&gt;
&lt;li&gt;amend changes to the current commit&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;push&lt;/li&gt;
&lt;li&gt;(build + deploy)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is good, but I need to check if &lt;a href=&quot;https://workingcopy.app/manual.html&quot;&gt;WorkingCopy&lt;/a&gt; (iOS Git Client) has commit hook support and how that works within &lt;a href=&quot;https://github.com/Vinzent03/obsidian-git&quot;&gt;Obsidian Git&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WorkingCopy does not, it seems.&lt;/li&gt;
&lt;li&gt;Obsidian Git had some problems interacting with &lt;a href=&quot;https://typicode.github.io/husky/&quot;&gt;Husky&lt;/a&gt;, but I will look into it more when I am ready to go live with this&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If I ever want to work on my blog from my iPad, I need to figure out a way to add missing version hashes later. I imagine that I can give the script not only one path but multiple paths for the working tree solution needed for the git hook. But depending on the path (file or folder) we will check for only that file or all (markdown) files within it, recursively.&lt;/p&gt;
&lt;p&gt;And I will not write that script in bash. I probably should write it in node as the blog is a JavaScript project. Fine.&lt;/p&gt;
&lt;h3 id=&quot;first-script-version&quot;&gt;First Script Version&lt;/h3&gt;
&lt;p&gt;Let&#39;s start by doing most of this manually.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; execSync &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;child_process&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; args &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;argv&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; isTesting &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; args&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;--testing&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;isTesting&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;This script is only for testing purposes.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; gitLog &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;execSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;git log --pretty=oneline --follow -- apps/blog/content/blog/2025/10/03/Write&#92;&#92; Like&#92;&#92; You&#92;&#92;&#39;re&#92;&#92; Ron&#92;&#92; Jeffries.md&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Commits for the Ron Jeffries post:&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; gitLog&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; fileContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;execSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;git cat-file -p a55686c28205d910943a15f7d2e1a4873cdd6b5d:apps/blog/content/blog/2025/10/03/Write&#92;&#92; Like&#92;&#92; You&#92;&#92;&#39;re&#92;&#92; Ron&#92;&#92; Jeffries.md&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;File content for the Ron Jeffries post (first version):&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		fileContent&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Bye...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This prints out:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Commits for the Ron Jeffries post:
 62cfd070c0e314110fb2fa3f621be40b665f7e3c Commit by obsidan-git
bb85ce9e5259d3bad6963e8ddab2ac9ffa1e3b56 Commit by obsidan-git
9402b41142602cd4a5f658646cf26944d7c7c04e Commit by obsidan-git
192cbd19e13b9d891ec19077c131c4b53aa69fd1 Fix BuildInPublic tag
a55686c28205d910943a15f7d2e1a4873cdd6b5d Commit by obsidan-git

File content for the Ron Jeffries post (first version):
 ---
title: Write Like You&#39;re Ron Jeffries
aliases: Write Like You&#39;re Ron Jeffries
draft: false
date: 2025-10-03T09:40:46+03:00
lastmod: 2025-10-03T14:15:20+03:00
tags:
  - Dev
---

I know of [Ron Jeffires] [...]

Bye...

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Okay. For now we just want to note the hashes, not retrieve their contents. Let&#39;s write them to a file.&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;	&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;gitLog&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Bye...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;gitLog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; commitHashes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; gitLog
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; line&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;Commit hashes for the Ron Jeffries post:&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		commitHashes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Write the commit hashes to a temporary file&lt;/span&gt;
	fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; commitHashes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That works. But now we need to make sure that we not only write it but write it to a specific location in the file, leaving the rest of it untouched. Let&#39;s create a small example markdown file and use the tool gray-matter (which Eleventy uses internally, too)&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/back-at-it/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; to parse and encode the frontmatter of markdown files.&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token front-matter-block&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token front-matter yaml language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; I am a friendly test file&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/span&gt;

Hello.&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;writeHashesToFile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;gitLog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; commitHashes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; gitLog
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; line&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// get first part (hash)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; hash&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// remove empty lines&lt;/span&gt;

	console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;Commit hashes for the Ron Jeffries post:&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		commitHashes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;//parse markdown file and write hashes to hashes key (add if not exists) of frontmatter&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; markdownContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;readFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;utf-8&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; parsed &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;matter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;markdownContent&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hashes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;hashes &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;commitHashes&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	fs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;writeFileSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;TMP_FILE&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; matter&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; parsed&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token front-matter-block&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token front-matter yaml language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; I am a friendly test file
&lt;span class=&quot;token key atrule&quot;&gt;hashes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; 62cfd070c0e314110fb2fa3f621be40b665f7e3c
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; bb85ce9e5259d3bad6963e8ddab2ac9ffa1e3b56
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; 9402b41142602cd4a5f658646cf26944d7c7c04e
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; 192cbd19e13b9d891ec19077c131c4b53aa69fd1
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; a55686c28205d910943a15f7d2e1a4873cdd6b5d&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/span&gt;

Hello.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Another small step taken.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;EDIT: I should switch to use 11y&#39;s own &lt;a href=&quot;https://github.com/11ty/gray-matter&quot;&gt;fork&lt;/a&gt; which I found when I looked through &lt;a href=&quot;https://github.com/11ty/eleventy/milestone/46?closed=1&quot;&gt;what is ahead of us for Eleventy 4&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/back-at-it/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Back At It

        https://blog.martin-haehnel.de/2025/10/18/back-at-it/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Blog As Zettelkasten Browser



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/18/blog-as-zettelkasten-browser/" />
      <updated>2025-10-18T14:52:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/18/blog-as-zettelkasten-browser/</id>
      <content type="html">&lt;p&gt;I like to think about my blog as a way to engage with the notes system that makes up its contents. It is quite literally the interface through which my notes should be most accessible. I am hesitant to add &amp;quot;for other people&amp;quot; as I think I should strive to make the Blog a great notes browser for me as well. By comparison to my IDE or Obsidian - the former being used to develop the code and the later to write and edit posts - the blog as viewed in e.g. Safari gives a much more tailored experience and I plan to continue developing features that make discovering posts old and new easier and more enjoyable.&lt;/p&gt;
&lt;p&gt;For example, I recently developed some mini-features to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/&quot;&gt;make recently edited posts more discoverable&lt;/a&gt;, worked on &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/04/more-description/&quot;&gt;description&lt;/a&gt; that makes posts shared on social media more enticing and I am currently working on a big feature to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/06/a-small-step/&quot;&gt;surface older versions of blog posts&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Blog As Zettelkasten Browser

        https://blog.martin-haehnel.de/2025/10/18/blog-as-zettelkasten-browser/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo Is Now A Tag



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/18/whiledo-is-now-a-tag/" />
      <updated>2025-10-18T14:37:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/18/whiledo-is-now-a-tag/</id>
      <content type="html">&lt;p&gt;Just to note somewhere that this happened: Instead of using &lt;a href=&quot;https://blog.martin-haehnel.de/tags/buildinpublic/&quot;&gt;BuildInPublic&lt;/a&gt; I will use the tag &lt;a href=&quot;https://blog.martin-haehnel.de/tags/WhileDo/&quot;&gt;WhileDo&lt;/a&gt; to denote posts that are written in the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Ron Jeffries&lt;/a&gt;/laboratory notes style of writing while doing. I have decided to let the tag BuildInPublic in place, as it also denotes an older thinking about these kinds of posts, while WhileDo denotes a newer framing.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo Is Now A Tag

        https://blog.martin-haehnel.de/2025/10/18/whiledo-is-now-a-tag/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub - WhileDo



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/18/hub-whiledo/" />
      <updated>2025-10-18T14:34:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/18/hub-whiledo/</id>
      <content type="html">&lt;p&gt;Another day, another post hub. This time it&#39;s about the difference of writing HowTos vs. WhileDos as expressed in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like You&amp;apos;re Ron Jeffries&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Texts like this are very different from how you&#39;d write a &amp;quot;how-to&amp;quot;: Everything is out in the open. Things that are unclear are not hidden. The meandering pace of solving a problem, of how ideas develop and how people create are not replaced by the slick surface of the perfect how-to in which everything seemed to have worked on the first try, was clear from the beginning. Jeffries&#39; texts on the other hand document the doing in the making, learning in the making. It makes it obvious that that which is presented is very often not how it was derived.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have written my own notes that try to do this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like You&amp;apos;re Ron Jeffries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/04/more-description/&quot;&gt;More Description&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/06/a-small-step/&quot;&gt;A Small Step&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have also written reflections about coding after the fact that I group with these posts, even though they are not exactly &amp;quot;WhileDo&amp;quot; per se:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/&quot;&gt;About Permutations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Hub - WhileDo

        https://blog.martin-haehnel.de/2025/10/18/hub-whiledo/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1421 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/17/dailydogo1421/" />
      <updated>2025-10-17T20:00:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/17/dailydogo1421/</id>
      <content type="html">&lt;p&gt;DailyDogo 1421 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a balcony door and watching straight into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/475dffee6f05f7ae0b80450ca2a295d3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1421 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;The Internet Is Not A Person&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/" />
      <updated>2025-10-17T06:03:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-17 - Added a clarification and some argumentative counterweight about the category error example&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&amp;quot;The Internet&amp;quot; is not a person. &amp;quot;Society&amp;quot; is also not a person. The following is a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;hub of posts&lt;/a&gt; trying to express this thought.&lt;/p&gt;
&lt;p&gt;As I said in my post &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html#LLMs%20and%20Society#LLMs%20and%20Society&quot;&gt;The Way We Use LLMs Makes All The Difference&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For the societal viewpoint, on the other hand, it&#39;s important to keep in mind that society is not a person, and it doesn&#39;t make decisions. It doesn&#39;t have intentions, and you can&#39;t actually interact with it directly. So making demands on society doesn&#39;t make a lot of sense. It may make some sense to demand change from politicians, but politicians are not society.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The Internet is also not a society. The internet is a wilderness.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html&quot;&gt;Is There A 3&amp;comma;5&amp;percnt; Rule For The Web&amp;quest;&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The Web and its visitors are not really a society or a nation state (or a union of such things) and therefore do not govern themselves. We are citizens of the web only in a very metaphorical way. The policies are enacted by governmental bodies like the EU. This makes me think that in order to change the web you need to change the society you&#39;re living in. Which means that a &amp;quot;3,5% rule&amp;quot; - if it exists - for the web would just be the &amp;quot;3,5% rule&amp;quot; for non digital societies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/stubs/&quot;&gt;Thoughts on &amp;quot;Takes spread like wildfire&amp;quot;&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;As nobody owes you being okay with just letting you try out an opinion you actually don&#39;t hold on them, nobody owes you not being criticized for what you put out in the public. In the best case you&#39;re part of a community that will protect you and enforces a certain code of conduct and hopefully has values you can agree with, but the greater web doesn&#39;t work like that because it&#39;s basically social wilderness. That means the further your reach the more it is likely that you will encounter pushback.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html&quot;&gt;Forest As System&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;So, I guess, what I&#39;m saying is that a forest is not designed but maintained by its inhabitants. And this maintenance is also not done on the whole thing at once by only well meaning, well educated and wise deers and squirrels (people and institutions). The internet is a wilderness. And as such it will always include predators: skilled and unskilled ones, big ones and small ones. Some we recognize as part of the forest, others we think of as &amp;quot;meta predators&amp;quot;. It is therefore also not a controlled or a flawless place where you can just be and do, guaranteed free from harm. This is exactly a thing that is more possible in smaller, more constrained places.&lt;/p&gt;
&lt;p&gt;The social internet doesn&#39;t &amp;quot;simply exist&amp;quot; for us to just inhabit, true. It is &lt;em&gt;made&lt;/em&gt;, yes. By us. Partly yes. But it being made doesn&#39;t mean that it doesn&#39;t exhibit the qualities of complex social systems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The internet as a whole is not to be tamed. But maybe communities situated within this wilderness could become a society (by giving themselves rules and enforcing them).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html&quot;&gt;Thoughts on &amp;quot;Manifesto for a Humane Web&amp;quot;&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;With an eye for a more &amp;quot;ecologist&amp;quot; web, that is with an eye for dependencies and conditions that make up diversity. I think this is a great framing for the humane web, because the categories used to frame this manifesto make clear what is needed for society of the web to make it in the wilderness that is the internet[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;category-error-examples&quot;&gt;Category Error Examples&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://mastodon.social/@Daojoan/115387984901414042&quot;&gt;This mastodon post&lt;/a&gt; by (the otherwise very much respected) JA Westenberg is an example of ascribing personhood to the internet:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Internet: &#39;We need less performative activism&#39;&lt;/p&gt;
&lt;p&gt;someone does quiet, effective charity work&lt;/p&gt;
&lt;p&gt;The Internet: &#39;Why isn&#39;t anyone talking about this issue?&#39;&lt;/p&gt;
&lt;p&gt;someone talks about the issue&lt;/p&gt;
&lt;p&gt;The Internet: &#39;Ugh, performative&#39;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The insinuation of the internet yelling - all of it, as yelled from a single mouth - &amp;quot;Why isn&#39;t anyone talking about this issue?&amp;quot; is a great example of what the internet can&#39;t do.&lt;/p&gt;
&lt;p&gt;But I am also reminded of the latter part of this post by &lt;a href=&quot;https://hachyderm.io/@mekkaokereke/115325457753813325&quot;&gt;Mekka Okereke&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; as well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Making a cheap car is not hard. Just remove stuff.🤷🏿‍♂️&lt;/p&gt;
&lt;p&gt;Making a safe car is not hard. Making a convenient car that people want is not hard. Making a car with luxuries and amenities, is not hard.&lt;/p&gt;
&lt;p&gt;Making a cheap, safe, convenient car that people want, with luxuries and amenities? Is super hard.&lt;/p&gt;
&lt;p&gt;(For my non-neurotypical friends: first of all, I love you! Second, the phrase &amp;quot;X is not hard, Y is hard!&amp;quot; is a phrase used by lots of people of all backgrounds, but is very common among West Africans and Black folk in the US 🙋🏿‍♂️. The &amp;quot;X is not hard&amp;quot; part is not literal. Usually the X part is very difficult as well. Making any production car at all, is very hard. The phrase is an emphasis on the relative difficulty of the Y part. )&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Oversimplifying and overstating for effect or just as a technique to underline something is not the same as making a category error, of course. Also, sometimes things just need to be said, &lt;a href=&quot;https://mgx.me/the-watchers&quot;&gt;complexity be damned&lt;/a&gt;.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Which took me way too long to find... Gotta remember to bookmark posts I want to come back to generously. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;The Internet Is Not A Person&quot;

        https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1420 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/16/dailydogo1420/" />
      <updated>2025-10-16T19:52:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/16/dailydogo1420/</id>
      <content type="html">&lt;p&gt;DailyDogo 1420 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan photographed from behind. She is standing on some stones, watching in the distance as if she would&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bbbdd061c04205a5f217313435c82a3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1420 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1419 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/15/dailydogo1419/" />
      <updated>2025-10-15T19:46:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/15/dailydogo1419/</id>
      <content type="html">&lt;p&gt;DailyDogo 1419 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/27ade9d182b395e87c2602eda46de9d6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1419 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1418 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/14/dailydogo1418/" />
      <updated>2025-10-14T20:28:50Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/14/dailydogo1418/</id>
      <content type="html">&lt;p&gt;DailyDogo 1418 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan ripping a cardboard box apart.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/78293bdd0d6b49515de231aa4f9432fd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1418 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1417 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/13/dailydogo1417/" />
      <updated>2025-10-13T18:50:51Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/13/dailydogo1417/</id>
      <content type="html">&lt;p&gt;DailyDogo 1417 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in the grass.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c31a72a506256ff898d031f2f9ec9afa.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1417 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1416 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/12/dailydogo1416/" />
      <updated>2025-10-12T20:53:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/12/dailydogo1416/</id>
      <content type="html">&lt;p&gt;DailyDogo 1416 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a dog bed on the balcony. There are a lot of empty pots on the balcony as well. A path leads from where the photographer is standing to her spot next to banisters.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5e5367bc7faa311637a68d1d868c244e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1416 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          About Permutations



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/11/about-permutations/" />
      <updated>2025-10-11T19:51:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/11/about-permutations/</id>
      <content type="html">&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;Beware: The following post contains spoilers for a code kata (&lt;a href=&quot;https://www.codewars.com/kata/5254ca2719453dcc0b00027d/train/php&quot;&gt;So Many Permutations!&lt;/a&gt;) from the website &lt;a href=&quot;http://codewars.com&quot;&gt;codewars&lt;/a&gt;!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is not exactly a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/&quot;&gt;WhileDo&lt;/a&gt; post - I should really tag these WhileDo and not BuildInPublic - but a reflection of my work on a code kata after the fact.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Here&#39;s is the code kata:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In this kata, your task is to create all permutations of a non-empty input string and remove duplicates, if present.&lt;/p&gt;
&lt;p&gt;Create as many &amp;quot;shufflings&amp;quot; as you can!&lt;/p&gt;
&lt;p&gt;Examples:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;With input &#39;a&#39;:
Your function should return: [&#39;a&#39;]

With input &#39;ab&#39;:
Your function should return [&#39;ab&#39;, &#39;ba&#39;]

With input &#39;abc&#39;:
Your function should return [&#39;abc&#39;,&#39;acb&#39;,&#39;bac&#39;,&#39;bca&#39;,&#39;cab&#39;,&#39;cba&#39;]

With input &#39;aabb&#39;:
Your function should return [&#39;aabb&#39;, &#39;abab&#39;, &#39;abba&#39;, &#39;baab&#39;, &#39;baba&#39;, &#39;bbaa&#39;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note: The order of the permutations doesn&#39;t matter.&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Although it is a problem - not the kata, but &amp;quot;make permutations&amp;quot; - I had probably solved before, whenever I am confronted with &amp;quot;make permutations&amp;quot; in real life, the &amp;quot;algorithm&amp;quot; goes something like this (example here is &amp;quot;ABC&amp;quot;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Say &amp;quot;ABC&amp;quot; in my head&lt;/li&gt;
&lt;li&gt;Say &amp;quot;ACB&amp;quot; in my head&lt;/li&gt;
&lt;li&gt;Say &amp;quot;BAC&amp;quot; in my head&lt;/li&gt;
&lt;li&gt;Say &amp;quot;BCA&amp;quot;&lt;/li&gt;
&lt;li&gt;be stumped for a moment...&lt;/li&gt;
&lt;li&gt;Come up with &amp;quot;BCA&amp;quot; again&lt;/li&gt;
&lt;li&gt;Come up with &amp;quot;BAA&amp;quot;... realize that this is not valid&lt;/li&gt;
&lt;li&gt;Repeat coming up with possible candidates until none come to mind anymore&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is a terrible &amp;quot;algorithm&amp;quot;, because it is non-exhaustive and error prone. And not really something I wanted to implement. In such a situation I tend to just go to Wikipedia (if possible) and look for a standard algorithm. I remember having done so in a coding interview as well.&lt;/p&gt;
&lt;p&gt;If you look up &lt;a href=&quot;https://en.wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order&quot;&gt;permutation&lt;/a&gt; and scroll down a little, you&#39;ll find:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The following algorithm generates the next permutation lexicographically after a given permutation. It changes the given permutation in-place.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Find the largest index &lt;code&gt;k&lt;/code&gt; such that &lt;code&gt;a[k] &amp;lt; a[k + 1]&lt;/code&gt;. If no such index exists, the permutation is the last permutation.&lt;/li&gt;
&lt;li&gt;Find the largest index &lt;code&gt;l&lt;/code&gt; greater than &lt;code&gt;k&lt;/code&gt; such that &lt;code&gt;a[k] &amp;lt; a[l]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Swap the value of &lt;code&gt;a[k]&lt;/code&gt; with that of &lt;code&gt;a[l]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reverse the sequence from &lt;code&gt;a[k + 1]&lt;/code&gt; up to and including the final element &lt;code&gt;a[n]&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, given the sequence &lt;code&gt;[1, 2, 3, 4]&lt;/code&gt; (which is in increasing order), and given that the index is zero-based, the steps are as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Index &lt;code&gt;k = 2&lt;/code&gt;, because 3 is placed at an index that satisfies condition of being the largest index that is still less than &lt;code&gt;a[k + 1]&lt;/code&gt; which is 4.&lt;/li&gt;
&lt;li&gt;Index &lt;code&gt;l = 3&lt;/code&gt;, because 4 is the only value in the sequence that is greater than 3 in order to satisfy the condition &lt;code&gt;a[k] &amp;lt; a[l]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The values of &lt;code&gt;a[2]&lt;/code&gt; and &lt;code&gt;a[3]&lt;/code&gt; are swapped to form the new sequence &lt;code&gt;[1, 2, 4, 3]&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The sequence after k-index &lt;code&gt;a[2]&lt;/code&gt; to the final element is reversed. Because only one value lies after this index (the 3), the sequence remains unchanged in this instance. Thus the lexicographic successor of the initial state is permuted: &lt;code&gt;[1, 2, 4, 3]&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Following this algorithm, the next lexicographic permutation will be &lt;code&gt;[1, 3, 2, 4]&lt;/code&gt;, and the 24th permutation will be &lt;code&gt;[4, 3, 2, 1]&lt;/code&gt; at which point &lt;code&gt;a[k] &amp;lt; a[k + 1]&lt;/code&gt; does not exist, indicating that this is the last permutation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On the first look, this didn&#39;t seem so hard to implement. A few problems I encountered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I had somehow problems figuring out how to find &amp;quot;the largest index such that &lt;code&gt;&amp;lt;condition&amp;gt;&lt;/code&gt;&amp;quot;. The largest index is clear, but how exactly do you look for an index like this? The solution I landed on to solve this initially was to just collect candidate indexes that satisfied condition and then just keep the highest one.&lt;/li&gt;
&lt;li&gt;I was not reading carefully enough and only later caught the difference between the k condition and the l condition: F.x.: [1,2,3,1,3]. Index 1 (value 2) would be what &lt;code&gt;k&lt;/code&gt; is. The only value that is bigger than 2 is 3, but the biggest index with value 3 is of course not 2 (which happens to be &lt;code&gt;k+1&lt;/code&gt;), but 4!&lt;/li&gt;
&lt;li&gt;I somehow completely skipped step 4 initially and ended up with less permutations than the tests. Doh!&lt;/li&gt;
&lt;li&gt;I missed in the paragraph before the one I just quoted that you have to sort the array, before you can start doing things!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Implementing the algorithm took me about 4.5 hours. Here&#39;s the super-janky first version that passed the tests:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;span class=&quot;token php language-php&quot;&gt;&lt;span class=&quot;token delimiter important&quot;&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;//see https://en.wikipedia.org/wiki/Permutation - Generation in lexicographic order&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;permutations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;strlen&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;/*if (strlen($s) === 2) {
        return [$s, strrev($s)];
    }*/&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//convert to numbers - AABB - 97,97,98,98&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getNumArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// sort! (doesn&#39;t do anything with aabb, but would be needed for bbaa)&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getAll&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_unique&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getAll&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;newSwap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$pmsChar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$pmsChar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swap1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swap2&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swap3&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swap4&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swap5&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$perms&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swap1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swap2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swap3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swap4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swap5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string double-quoted-string&quot;&gt;&quot;LOL&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;print_r&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;print_r&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$perms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;print_r&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$pmsChar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string double-quoted-string&quot;&gt;&quot;LOL&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$permsChar&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swap5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;print_r&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$permsChar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$permsChar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getNumArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$arr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;str_split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$char&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$char&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$arr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;string&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;implode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$num&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$num&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;newSwap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token keyword type-declaration&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Iterate over all elements to have candidates for k, pick largest one&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token comment&quot;&gt;//can&#39;t be the last one&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token constant boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Iterate over all elements to have candidates for l&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Important we compare values this time.&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// a[k] &amp;lt; a[l]&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// let&#39;s say the arr is 97,98,97,98&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// k is 2&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// a[k] = 97&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// largest index pointing to a value bigger than 97 is 3&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// l is 3&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// a[l] = 98&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// new situation: 97,98,98,97&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Swap values of k and l&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Reverse array from k onwards&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$toReverse&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$reversed&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_reverse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$toReverse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;array_splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;token keyword type-declaration&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token argument-name&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token argument-name&quot;&gt;replacement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reversed&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;/**
    echo &quot;---&#92;n&quot;;
    echo &quot;Orginal Array: &quot;.getImplodeCharString($numArr).&quot;&#92;n&quot;;
    // print_r($lCandidates);
    echo &quot;K from Candidates: &quot;.$k.&quot; Value: &quot;.$numArr[$k].&quot; Char: &quot;.chr($numArr[$k]).&quot;&#92;n&quot;;
    echo &quot;L from Candidates: &quot;.$l.&quot; Value: &quot;.$numArr[$l].&quot; Char: &quot;.chr($numArr[$l]).&quot;&#92;n&quot;;
    echo &quot;Swapped Array: &quot;.getImplodeCharString($swappedArr).&quot;&#92;n&quot;;
    echo &quot;Reversed After K Array: &quot;.getImplodeCharString($reverseAfterK).&quot;&#92;n&quot;;
     **/&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token keyword type-declaration&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// call newswap&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// Find the largest index k such that a[k] &amp;lt; a[k + 1]. If no such index exists, the permutation is the last permutation.&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// idea: take second last index compare to last index and so forth&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token comment&quot;&gt;//can&#39;t be the last one&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token comment&quot;&gt;//all infices bigger than&lt;/span&gt;


            &lt;span class=&quot;token comment&quot;&gt;// ---&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//WRONG&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// echo &quot;###&#92;n&quot;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// echo &quot;Orginal Array: &quot;.getImplodeCharString($numArr).&quot;&#92;n&quot;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// echo &quot;K-Index: &quot;.$k.&quot; Value: &quot;.$numArr[$k].&quot; Char: &quot;.chr($numArr[$k]).&quot;&#92;n&quot;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// echo &quot;L-Index: &quot;.$l.&quot; Value: &quot;.$numArr[$l].&quot; Char: &quot;.chr($numArr[$l]).&quot;&#92;n&quot;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// swap $k and $l&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// echo &quot;Converted swapped Array: &quot;.getImplodeCharString($numArr).&quot;&#92;n&quot;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I think we can all agree that this thing is an absolute mess, but I wanted to put it here to show that this is how I worked on the problem. This is why there is a &lt;code&gt;swap&lt;/code&gt; function and a &lt;code&gt;newSwap&lt;/code&gt; function and getAll returns before some other code would&#39;ve run and you can see my &lt;code&gt;echo&lt;/code&gt; and &lt;code&gt;print_r&lt;/code&gt; debugging statements that are commented out. Even my misunderstanding between the conditions for &lt;code&gt;k&lt;/code&gt;/&lt;code&gt;l&lt;/code&gt; was immortalized.&lt;/p&gt;
&lt;p&gt;In non-code form, my way of solving this one goes as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;convert the incoming string into an array of characters&lt;/li&gt;
&lt;li&gt;convert those characters into numbers&lt;/li&gt;
&lt;li&gt;use this array of numbers to use the lexicographic algorithm to find all permutations&lt;/li&gt;
&lt;li&gt;convert all found permutation arrays back to chars and finally join them to strings&lt;/li&gt;
&lt;li&gt;return the array containing these permutations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I turned this messy but working version into a slightly less messy but pretty baroque version, which I then submitted as my solution:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;span class=&quot;token php language-php&quot;&gt;&lt;span class=&quot;token delimiter important&quot;&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;//see https://en.wikipedia.org/wiki/Permutation - Generation in lexicographic order&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;permutations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token variable&quot;&gt;$solution&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Permutations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$solution&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;permutations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name-definition class-name&quot;&gt;Permutations&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;//see https://en.wikipedia.org/wiki/Permutation - Generation in lexicographic order&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;permutations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;strlen&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getAllPerms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getAllPerms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;//convert to numbers - AABB - 97,97,98,98&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getNumArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// sort! (doesn&#39;t do anything with aabb, but would be needed for bbaa)&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

        &lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token variable&quot;&gt;$initial&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$next&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$pms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_unique&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getNumArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$arr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;str_split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$s&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$char&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$char&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$arr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getImplodeCharString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;string&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;implode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;array_map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$num&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$num&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;swap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;bool&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token keyword type-declaration&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Get the largest index k where a[k] &amp;lt; a[k+1]&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token constant boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token constant boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Get the largest index l where a[k] &amp;lt; a[l]&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Swap values of k and l&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;swapKL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Reverse array from after k onwards&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token keyword type-declaration&quot;&gt;int&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Iterate over all elements to have candidates for k, pick the largest one&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$lengthNumArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$iValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$lengthNumArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token comment&quot;&gt;//can&#39;t be the last one&lt;/span&gt;
                &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$iValue&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token constant boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$kCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;getL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;int&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Iterate over all elements to have candidates for l&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// Important we compare values this time.&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// a[k] &amp;lt; a[l]&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// let&#39;s say the arr is 97,98,97,98&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// k is 2&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// a[k] = 97&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// largest index pointing to a value bigger than 97 is 3&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// l is 3&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// a[l] = 98&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// new situation: 97,98,98,97&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$lengthNumArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$lengthNumArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$lCandidates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;swapKL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$numArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$l&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword type-hint&quot;&gt;array&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword type-hint&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;array&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$swappedArr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$toReverse&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$reversed&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;array_reverse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$toReverse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;array_splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
            &lt;span class=&quot;token keyword type-declaration&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token argument-name&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$k&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;token argument-name&quot;&gt;replacement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reversed&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$reverseAfterK&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is in many ways certainly a flawed version in itself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;array_unique does nothing, as not duplicate permutations are generated&lt;/li&gt;
&lt;li&gt;getK and getL should have searched from right to left, since the first candidate would&#39;ve been the right candidate by definition&lt;/li&gt;
&lt;li&gt;there is some trickery you can do to condense some of these steps (like swaping k and l without using a temp variable)&lt;/li&gt;
&lt;li&gt;probably a million other small and big things&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But as a refactoring &amp;quot;starting point&amp;quot;, I feel like it&#39;s okay: All the main steps of my solution reside in their own methods, making changing these steps independently of each other easier. I like organizing things into Classes (this is what I do at work all-day after all...) and methods, although I concede that it is not exactly necessary. Still, in this way my &amp;quot;all-permutations-of-a- string&amp;quot; generator class can just be dropped into another application, it plays nicely with my IDE&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and is easy to test as PHPUnit (the test suite codewars uses to test your solution) generally assumes Classes.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The fun part of submitting a kata is seeing other people&#39;s solutions, of course. Very often, these are &lt;a href=&quot;https://en.wikipedia.org/wiki/Code_golf&quot;&gt;code golf&lt;/a&gt;-esque solutions that solve something I would&#39;ve solved in 50-150 lines in 10-20 (or sometimes 2). But because these programming puzzles are often solved in this way, it&#39;s hard to see how a normal person&#39;s solution (like mine) compares to these solutions. Here&#39;s the highest rated (by &amp;quot;best practices&amp;quot;) solution for the same kata:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;function permutations(string $str): array
{
    if (strlen($str) &amp;lt; 2) {
        return [$str];
    }

    $result = [];
    $stop = strlen($str) - 1;
    for ($i = 0; $i &amp;lt;= $stop; $i++) {
        $substr = substr($str, 0, $i) . substr($str, $i + 1);
        foreach (permutations($substr) as $per) {
            $result[] = $str[$i] . $per;
        }
    }
    return array_unique($result);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When I first saw this, I was thinking that this solution somehow had implemented the same algorithm as I had just recursively, but that is actually not the case. At the core this loops through the string and removes the char at index i, then recursively permutes the rest of the string and adds that removed char back to the front. For the relatively easy case of ABC, you get:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;A&lt;/code&gt; gets removed, the &lt;code&gt;$substr&lt;/code&gt; is now &lt;code&gt;BC&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permutations()&lt;/code&gt; is called with &lt;code&gt;BC&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;the following is the basic case (which is where the AHA moment happened for me):&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;inside the &lt;code&gt;permutations(BC)&lt;/code&gt; call, first &lt;code&gt;B&lt;/code&gt; is removed and &lt;code&gt;permutations(C)&lt;/code&gt; returns &lt;code&gt;C&lt;/code&gt;, then &lt;code&gt;C&lt;/code&gt; is removed and &lt;code&gt;permutations(B)&lt;/code&gt; returns &lt;code&gt;B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;in both cases the removed letter and the single result from the recursive call are concatenated and added to the result, so &lt;code&gt;BC&lt;/code&gt; and &lt;code&gt;CB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BC&lt;/code&gt; AND &lt;code&gt;CB&lt;/code&gt; are the result of calling &lt;code&gt;permutations()&lt;/code&gt; with &lt;code&gt;BC&lt;/code&gt;: &lt;code&gt;[BC, CB]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Back in the main &lt;code&gt;permutations(ABC)&lt;/code&gt; call &lt;code&gt;A&lt;/code&gt; is added to the results of &lt;code&gt;permutations(BC)&lt;/code&gt;: &lt;code&gt;ABC&lt;/code&gt;, &lt;code&gt;ACB&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Then the next loop starts: Instead of &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt; is removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permutations(AC)&lt;/code&gt; is called, result is &lt;code&gt;AC&lt;/code&gt;, &lt;code&gt;CA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;in the main call the result is &lt;code&gt;BAC&lt;/code&gt;, &lt;code&gt;BCA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Finally: &lt;code&gt;C&lt;/code&gt; is removed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;permutations(AB)&lt;/code&gt;, result: &lt;code&gt;AB&lt;/code&gt;, &lt;code&gt;BA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CAB&lt;/code&gt;, &lt;code&gt;CBA&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;in the main permutations call we have now finished the for loop&lt;/li&gt;
&lt;li&gt;the result is: &lt;code&gt;ABC&lt;/code&gt;,  &lt;code&gt;ACB&lt;/code&gt;, &lt;code&gt;BAC&lt;/code&gt;, &lt;code&gt;BCA&lt;/code&gt;, &lt;code&gt;CAB&lt;/code&gt;, &lt;code&gt;CBA&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Very clever!&lt;/p&gt;
&lt;p&gt;For longer strings the recursive solution might run into trouble (stack depth) and my iterative solution seems to me (a person who didn&#39;t solve it recursively, to be fair) easier to understand, easier to maintain and easier to build upon, but this is very clever. In &amp;quot;production&amp;quot; I would probably still prefer my iterative solution, tbh.&lt;/p&gt;
&lt;p&gt;What I find so interesting about this highly praised &amp;quot;best practice&amp;quot; solution: I don&#39;t think I would&#39;ve come up with this. Ever! I can think of two reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;My computer science education was a while ago and my grasp on basic algorithms is not super strong: I can figure them out, but I don&#39;t think in algorithms.&lt;/li&gt;
&lt;li&gt;Because my intuitive &amp;quot;algorithm&amp;quot; for finding permutations is bad, I do not have (or hopefully didn&#39;t have but now do) a way to think about finding permutations more systematically. I could imagine that if you actually do have an intuitive way to find all permutations that maps somewhat to the recursive approach that you could maybe implement it from thinking about how &amp;quot;you&#39;d do it&amp;quot; naturally.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Why this is so weird to me: Many similar solutions exist to the recursive one presented above. Some of them put the removed letter to the end instead of the front or whathaveyou - I do not claim having understood all of the solutions - but none as far as I saw in my skimming the other solutions did what I did! Nobody implemented the lexicographic permutation algorithm and especially not in this &amp;quot;enterprise ready&amp;quot; form. Nobody as far as I saw came up with the idea to convert letters to numbers using &lt;code&gt;ord&lt;/code&gt;/&lt;code&gt;chr&lt;/code&gt; either. Not gonna lie: I feel weirdly unique.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I like Codewars a lot, because its minimalistic editor prevents you from relying on the IDE or, for example, copilot or other LLM helpers that spoil the efort. It&#39;s good to train to work without all the bells and whistles from time to time. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;For the refactoring step, I did switch to PHPStorm in this case. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Actually interesting that codewars expects you to write a function but tests with PHPUnit... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/11/about-permutations/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        About Permutations

        https://blog.martin-haehnel.de/2025/10/11/about-permutations/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1415 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/11/dailydogo1415/" />
      <updated>2025-10-11T18:20:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/11/dailydogo1415/</id>
      <content type="html">&lt;p&gt;DailyDogo 1415 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor, tongue slightly out, eyes open, staring , but nowhere in particular.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/664c0ae3e9decea06103210301a5c06f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1415 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1414 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/10/dailydogo1414/" />
      <updated>2025-10-10T20:30:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/10/dailydogo1414/</id>
      <content type="html">&lt;p&gt;DailyDogo 1414 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying flat on the floor next to some toys.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0699ea68a533906b6eb1a6a0ddd6ebf6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1414 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1413 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/09/dailydogo1413/" />
      <updated>2025-10-09T18:35:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/09/dailydogo1413/</id>
      <content type="html">&lt;p&gt;DailyDogo 1413 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan relaxing with her belly up on a white blanket on an off-white couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/34a88dd39a93667ee20f03801d58fe46.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1413 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1412 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/08/dailydogo1412/" />
      <updated>2025-10-08T20:05:36Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/08/dailydogo1412/</id>
      <content type="html">&lt;p&gt;DailyDogo 1412 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan waiting patiently in the elevator.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/79ca65f493a45d60a552fb0df0d6cb4f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1412 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Figure Out What You&#39;re Not Good At



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/" />
      <updated>2025-10-07T19:49:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-09 - This post was &lt;a href=&quot;https://news.ycombinator.com/item?id=45509123&quot;&gt;discussed on Hacker News&lt;/a&gt;, which is both exciting and nerve wrecking. I also fixed a typo.&lt;/li&gt;
&lt;li&gt;2025-11-13 - Fixed another typo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;A blog post&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; that has rolled around in my head ever since it arrived in my feed reader is &lt;a href=&quot;https://drmaciver.substack.com/p/how-to-say-what-youre-good-at&quot;&gt;How to say what you&#39;re good at&lt;/a&gt; by David R. Maciver. Here&#39;s the main reason it has stuck with me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As with many hard things, I think part of this is just that nobody has ever told you how to do it. So, here’s one way to do it.&lt;/p&gt;
&lt;p&gt;Probably the best piece of advice I have on &lt;a href=&quot;https://sashachapin.substack.com/p/50-things-i-know&quot;&gt;this comes from Sasha Chapin&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] talent doesn’t feel like you’re amazing. It feels like the difficulties that trouble others are mysteriously absent in your case. Don’t ask yourself where your true gifts lie. Ask what other people seem weirdly bad at.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;Blogs are amazing, because they let you link to other things.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and Maciver&#39;s post linked to an insight that I had never heard being put quite this way. And what it unlocked was not necessarily a better feeling for what I&#39;m good at or what my talents are (that also happened), but what I&#39;m actually bad at! And that was weirdly helpful. It helped to relax a little bit. I think you can credibly invert what the writer Sasha Chapin is saying:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Being untalented or middling at something doesn&#39;t feel like you&#39;re untalented. It feels like there are weird difficulties and troubles that others that are successful don&#39;t seem to encounter.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have had this feeling pretty often, if I&#39;m honest. I felt like I knew a lot and learned to see what was needed in some area, but somehow, I was unable to put it into practice. And even with a heavy heaping of &amp;quot;I&#39;m still learning, I&#39;m on my way, I&#39;m obviously not there &lt;em&gt;yet&lt;/em&gt;, but I will be&amp;quot; added, these weird difficulties would not stop to show up. And others seemed to not have them. Or not have them as bad. Can&#39;t chalk up all of it to bad luck, either. But what is it, then?&lt;/p&gt;
&lt;p&gt;Well, I increasingly think that I am just not as good at some things than others.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; And being middling at something feels exactly like this: &amp;quot;Why is this harder for me? I get what I have to do, and I am even doing it, and it still is hard because there are these pesky obstacles everywhere. But why?&amp;quot;&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong: Of course, some things are hard for everyone. Of course, some things I think I am good at &lt;em&gt;now&lt;/em&gt; have been hard in the past. But taken this all as read, there are still things that somehow elude me.&lt;/p&gt;
&lt;p&gt;Want an example? Video games. Turns out I&#39;m horrendous at them. I love playing them, but I have never really been good at them.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt; I have spent enormous amounts of time playing them over my 39 years on this planet. Thousands of hours. Probably more than 10000.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; And I even like to watch high-level players play sometimes. One of my favorite games is the pretty difficult roguelike deck builder called Slay The Spire. I have more than 1000 hours in that thing alone. But watching high-level players play it and then trying to replicate what I see... I could never do it! I told myself that it surely just was that it is not my job to use my best brain cycles for games and there is also luck involved. But here&#39;s the thing: These streamers - like &lt;a href=&quot;https://baalorlord.tv&quot;&gt;Baalorlord&lt;/a&gt;, for example - tend to also play other games than only Slay The Spire. And what is amazing to me: They can pick up a new to them game and immediately crank up the difficulty and just... win. At least win a lot more than I could ever have even on normal difficulty.&lt;/p&gt;
&lt;p&gt;And yes, part of that is that these people probably play today and have played in the past a lot more than me and indeed use their best brain cycles for gaming - whereas I tend to use my best cycles for programming nowadays - but having now watched high-level STS players play this game that I am so intently familiar with for hundreds of hours - it is very often my cozy background sound nowadays - I can pretty definitely say: These people are simply better at games than me. They are able to see the winning line in a fight, the better overall strategy, the &amp;quot;obvious&amp;quot; card pick, the right judgment of why cards and relics are good in general and in context of the current run. And I can kinda follow along and kinda sometimes guess what they would do before they do it, but it is more like a sports fan who imagines himself to be a pretty solid baseball player if things would&#39;ve gone differently than being actually be able to replicate what I see. I think there is no shame in admitting it anymore: I love games, but I kind of suck at them. And not winning at XCOM or Civ or Stellaris or may other games that I have loved but never came close to finish is not really about the games&#39; pace or &amp;quot;unclear instructions&amp;quot; or whatever: It&#39;s just that there are others who breeze through what I perceive as ambiguities with ease and &amp;quot;solve&amp;quot; these games and I simply don&#39;t or only with lots of patience and brute-force because, actually, games are harder for me than for others.&lt;/p&gt;
&lt;p&gt;And video games is just one example of many where - to me - it looks like there are just a few obstacles in my way that others don&#39;t seem to encounter or are at least not as bothered by. If I had just a little more time and/or experience... No. Sometimes, not always, but also not never, and I suspect more often than I&#39;d like, what&#39;s actually happening is simply that I have encountered something I&#39;m just not as good at (or at the very least as outstanding at). And - amazingly - these things can include &amp;quot;brainy&amp;quot; things that I like also, like strategy video games. What a relief!&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Apologies for &lt;a href=&quot;https://leavesubstack.com&quot;&gt;substack&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Even if those other things are links to other substacks... common people! Do you really want to be on the same platform that people like Curtis Yarvin are using?! Anyway. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Amazing insight, I know. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m better at them than people who have played a lot less than me, but compared to people who play regularly I&#39;m just not that great. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have more than 5000 hours on Steam alone! &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Figure Out What You&#39;re Not Good At

        https://blog.martin-haehnel.de/2025/10/07/how-to-figure-out-what-you-re-not-good-at/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1411 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/07/dailydogo1411/" />
      <updated>2025-10-07T19:26:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/07/dailydogo1411/</id>
      <content type="html">&lt;p&gt;DailyDogo 1411 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping in her dog bed, next to toys and blankets, showing her belly. She is shaped like a &quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/417a9676a2be3c85fb1e6d6a4ccc8d05.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1411 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1410 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/06/dailydogo1410/" />
      <updated>2025-10-06T19:30:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/06/dailydogo1410/</id>
      <content type="html">&lt;p&gt;DailyDogo 1410 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a blanket on a couch watching hapily into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d968362a6ad40f8138e92ae7c80001.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1410 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Small Step



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/06/a-small-step/" />
      <updated>2025-10-06T16:35:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/06/a-small-step/</id>
      <content type="html">&lt;p&gt;As I said in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/&quot;&gt;WhileDo&lt;/a&gt;, after the automated blog post description has been implemented - and it has been implemented as is proven by &lt;a href=&quot;https://hachyderm.io/@finn_matti/115317933034449270&quot;&gt;this mastodon post&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/06/a-small-step/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; - I was going to tackle the much bigger task of implementing a versioning system for blog posts. What do I mean by that?&lt;/p&gt;
&lt;p&gt;It allows readers to switch between versions of a blog article. I want to have this, since this blog is frequently changing/updating older posts and I want to have my cake and eat it, too: Allow for older/original versions of posts to be available as well as have the freedom to update posts as I see fit. The good thing is that I use git to version control my blog. The bad thing is, that I only have so much history to work with, because 1.) I had this blog running on &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;a hosting platform&lt;/a&gt; for years and 2. I recently moved to a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/&quot;&gt;monorepo setup&lt;/a&gt; with a brand new git repo. This means that the history will only include versions starting in the end of august 2025. But that&#39;s fine.&lt;/p&gt;
&lt;p&gt;So here&#39;s the rough idea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write a script that adds all commit hashes that pertain to a certain blogpost to the frontmatter&lt;/li&gt;
&lt;li&gt;Read these hashes and - somehow - extract these older versions from the git history on building the site&lt;/li&gt;
&lt;li&gt;Build UI that allows switching from one version to another&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before I can even write a script, I need to figure out how I can collect commits that include changes to a blog post. &lt;a href=&quot;https://stackoverflow.com/a/8808453/12163256&quot;&gt;It seems&lt;/a&gt; a simple &lt;code&gt;git log --follow -- filename&lt;/code&gt; ought to do it:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; log &lt;span class=&quot;token parameter variable&quot;&gt;--pretty&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;oneline &lt;span class=&quot;token parameter variable&quot;&gt;--follow&lt;/span&gt; -- apps/blog/content/blog/2025/10/03/Write&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Like&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; You&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;&#39;re&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Ron&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Jeffries.md
9402b41142602cd4a5f658646cf26944d7c7c04e &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;HEAD -&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; main, origin/main, origin/HEAD&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; Commit by obsidan-git
192cbd19e13b9d891ec19077c131c4b53aa69fd1 Fix BuildInPublic tag
a55686c28205d910943a15f7d2e1a4873cdd6b5d Commit by obsidan-git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Not bad! So we would do that for all files in a given folder recursively. And save those hashes to the files under a versions frontmatter property.&lt;/p&gt;
&lt;p&gt;And how do we get git to display the contents pertaining to a particular hash? &lt;a href=&quot;https://stackoverflow.com/a/8951395/12163256&quot;&gt;Like so&lt;/a&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; show a55686c28205d910943a15f7d2e1a4873cdd6b5d:apps/blog/content/blog/2025/10/03/Write&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Like&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; You&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;&#39;re&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Ron&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Jeffries.md&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But probably better for our purposes is the second solution given there:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; cat-file &lt;span class=&quot;token parameter variable&quot;&gt;-p&lt;/span&gt; a55686c28205d910943a15f7d2e1a4873cdd6b5d:apps/blog/content/blog/2025/10/03/Write&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Like&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; You&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;&#39;re&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Ron&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Jeffries.md&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As this just prints out the old version instead of piping it to &lt;code&gt;less&lt;/code&gt;. Very cool. So we would use &lt;code&gt;git log --follow&lt;/code&gt; to build up the list hashes and then instruct eleventy to shell out to &lt;code&gt;git cat-file -p&lt;/code&gt; to retrieve the old versions listed? Probably! I imagine that we could build up a collection of these files and make them available for a build in that way. I can see some troubling edge cases we have to think about:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What about commits that have broken articles in them, f.x. that don&#39;t render properly because of syntax errors?&lt;/li&gt;
&lt;li&gt;What about commits that include versions I&#39;d rather not share?&lt;/li&gt;
&lt;li&gt;What about features like my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/&quot;&gt;fav system&lt;/a&gt;? That should probably only count for the current article? It kind of has to at the moment, as the permalink is the unique id in the kv. This means though that I have to render those articles slightly differently.&lt;/li&gt;
&lt;li&gt;What about the multiplied effort eleventy has to go trough to render these posts? Even if only some articles have versions, let&#39;s say 300 have 2 versions and the current one. They would kinda count as 900 articles all of a sudden! Maybe that&#39;s fine. I don&#39;t know. We&#39;ll see.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1-2 means we need to able to exclude broken/private versions. 3 means we need to make clear that you&#39;re looking at an old version. 4 means we might have super long build times at some point, I might&#39;ve to not render images for old versions to shave off some time or maybe generate versions at runtime. We&#39;ll see.&lt;/p&gt;
&lt;p&gt;I guess this is where I stop today. About 40 minutes of thinking about the thing. It was fruitful as ever even no code was written.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The fact that images remove preview cards on mastodon means that I may revisit this feature at a later time, but it&#39;s good enough for now. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/06/a-small-step/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        A Small Step

        https://blog.martin-haehnel.de/2025/10/06/a-small-step/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1409 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/05/dailydogo1409/" />
      <updated>2025-10-05T20:20:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/05/dailydogo1409/</id>
      <content type="html">&lt;p&gt;DailyDogo 1409 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and two other dogs playing in a dog park.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bec974406df81a3c631190a0b2e13ad7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1409 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Alien Moonlanding Scenario



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/04/alien-moonlanding-scenario/" />
      <updated>2025-10-04T20:25:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/04/alien-moonlanding-scenario/</id>
      <content type="html">&lt;p&gt;This just came to me in the sauna: At work, I often want to over-engineer things. Everything needs to be linted, tested and architected! I can&#39;t make all the decisions by myself, so we don&#39;t lint, test or architect everything. But what if I had to decide everything? What would it look like? Suppose a person came to me and said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Aliens are real. And they devised a weird test to figure out if humanity is worth it to protect or not. Here it is: A random programmer is chosen. They have to solve the following problem: A package of information has to be brought to the moon. It can be brought in person, or via drone or via lasers or whatever. The information package needs to be parsed and transmitted - it is about 100GB of semi-connected JSON, SQL and other data formats. The information package has to be transported to the moon, yes, but not just as cold data. They want to query that data, so an Interface has to be devised. One catch: The programmer has to start from scratch. This means that they can simply ask NASA or ESA or whatever to do it for them. They have to create their own organization. They can hire people, they can make technology decisions, they can delegate things. As long as the programmer makes the decision that lead to another decision downstream, that&#39;s fine. The programmer has to be involved in the actual programming in some way, though. They have to eat their own dog food. Resources are no object and so is time. As long as the delivery of the information happens in their lifetime the aliens will be pleased.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is of course totally over the top, but I find it an interesting thought experiment. Like, for example: If I am the one to decide how we go about developing the various software systems needed to get to the moon in some way, would I insist on testing? Would I forbid AI? Would I use a hyperscaler to drive the data interface or a few giant hunks of metal? What language would I use? Are any of the ones available to me passable at parts of this? PHP, JavaScript? Would Python be better? I know trace amounts of Go and Swift. How would I handle the data? How would I get the interface to the moon? What tools would I use?&lt;/p&gt;
&lt;p&gt;What is cool about this is that it makes me (at least) think of what I actually value in technology and organizational decisions. What do I believe gets me actually closer to the goal?&lt;/p&gt;
&lt;p&gt;In reality, we very often don&#39;t have this freedom and so end up entangled in all kinds of situations and relationships and processes in which we only have very limited agency.  A much more realistic state of affairs. We can&#39;t really &amp;quot;decide&amp;quot; to only use Laravel and Postgres with the frontend written in Vue from now on. But what if we could? What would we chose to use? Where do we not have strong opinions? Why not?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Alien Moonlanding Scenario

        https://blog.martin-haehnel.de/2025/10/04/alien-moonlanding-scenario/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1408 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/04/dailydogo1408/" />
      <updated>2025-10-04T18:53:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/04/dailydogo1408/</id>
      <content type="html">&lt;p&gt;DailyDogo 1408 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to and with her head under a couch. Her head is not visible in this photo taken from above.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8cd1ee16735f30ff988b7890287fee70.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1408 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          More Description



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/04/more-description/" />
      <updated>2025-10-04T09:39:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/04/more-description/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-04 - Added a changelog&lt;/li&gt;
&lt;li&gt;2025-10-18 - Slightly reworded the last couple of sentences&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;Why is this here?&lt;/p&gt;
&lt;p&gt;Since this was the post to test my description generation feature, this one has all the elements (callouts of different kinds, footnotes, linkes, linebreaks, even html) that I do not want to have included in my description.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&quot;lets-continue&quot;&gt;Let&#39;s continue&lt;/h3&gt;
&lt;p&gt;Another &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/&quot;&gt;WhileDo&lt;/a&gt; post.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/04/more-description/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Of course, my amazing work yesterday had one fatal flaw and that is that the preview card did not include &lt;em&gt;any&lt;/em&gt; descriptive text, just the one image of the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like You&amp;apos;re Ron Jeffries&lt;/a&gt; post, which makes it super confusing looking:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing a cross posted link to my WhileDo article. This one has an image attached which makes it look like these two posts are somehow nested within each other.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ce56aca11a1f0a0e79b9bccb77172b75.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It seems that the crossposting service of my choice - the awesome &lt;a href=&quot;https://echofeed.app&quot;&gt;EchoFeed&lt;/a&gt; by &lt;a href=&quot;https://rknight.me&quot;&gt;Robb Knight&lt;/a&gt; - extracts the image and posts that instead of a preview card or something? Time to read the docs. The EchoFeed docs don&#39;t talk about preview cards at all. So the question is: How does Mastodon behave, if an image is attached? Does that mean no preview card?&lt;/p&gt;
&lt;p&gt;While reading &lt;a href=&quot;https://box464.com/posts/mastodon-preview-cards/&quot;&gt;this blog post&lt;/a&gt; I notice two things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Mastodon&#39;s preview card logic is &lt;em&gt;much&lt;/em&gt; more complicated than expected&lt;/li&gt;
&lt;li&gt;I went about this all wrong and should&#39;ve used &lt;a href=&quot;https://debug.iframely.com&quot;&gt;this checker&lt;/a&gt; to see if everything is generated correctly on my end, before looking further down the pipeline&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And lo and behold it&#39;s not. My generated description field looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token property&quot;&gt;&quot;description&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;WhileDo Published: 2025-10-03 (Friday) at 14:49 Tags: Dev BuildInPublic quoteAIunquote Instead of a How-To, I&#39;ll write a…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alright. Back to basics. I can see what went wrong here: We don&#39;t use the post&#39;s body to generate the description but the whole page. I dig through the Eleventy docs for a moment, but can&#39;t find what I&#39;m looking for. There is the &lt;a href=&quot;https://www.11ty.dev/docs/data-eleventy-supplied/#page-variable&quot;&gt;page variable&lt;/a&gt;, but that only includes everything.&lt;/p&gt;
&lt;p&gt;Time to open the editor. I see that we use &lt;code&gt;content&lt;/code&gt; in the &lt;code&gt;base.njk&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{%- if isPost -%}
	{%- set pageDescription = description or (content | postContentExcerpt(120)) -%}
{%- else -%}
	{%- set pageDescription = description or metadata.description -%}
{%- endif -%}
&amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;{{ pageDescription }}&amp;quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I get lucky and find in my old eleventy config the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;eleventyConfig.addPreprocessor(
		&amp;quot;categories-to-tags&amp;quot;,
		&amp;quot;md&amp;quot;,
		(data, content) =&amp;gt; {
			const parsed = matter(content);
			const categories = parsed.data.categories;
			if (categories) {
				parsed.data.tags = categories;
			}
			return matter.stringify(parsed.content, parsed.data);
		},
	)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I imagine I could parse the post&#39;s body and then only use the actual content to create the description. But that would need to happen before we convert the markdown into html. AND: What about posts that include things like &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/&quot;&gt;Callouts&lt;/a&gt; or similar? Since I use them for Changelogs at the moment, they should probably not be included either...&lt;/p&gt;
&lt;p&gt;It turns out, that just doing it in a couple of hours before tackling a bigger problem was naive. The description feature itself is actually quite involved! So time for a plan: I will &amp;quot;precalculate&amp;quot; the description so that it will exist on the post. We know from the availability of &lt;code&gt;isPost&lt;/code&gt; in the layout that we ought to try to this in the &lt;code&gt;blog.11tydata.js&lt;/code&gt; &lt;a href=&quot;https://www.11ty.dev/docs/data-computed/&quot;&gt;data file&lt;/a&gt; which at the moment looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Reading the documentation, I&#39;m unsure if I can work with the posts content or not. I guess I just have to try it out. ... Good news! The contents are available! &lt;code&gt;data.page.rawInput&lt;/code&gt;. It is kind of sad that what data includes is not better documented. But it wasn&#39;t that hard to figure it out:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;eleventyComputed&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function-variable function&quot;&gt;generatedDescription&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt;
			&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;HELLO I WAS GENERATED! &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token doctype&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span class=&quot;token doctype-tag&quot;&gt;doctype&lt;/span&gt; &lt;span class=&quot;token name&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ metadata.language }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;utf-8&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;viewport&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;width=device-width, initial-scale=1.0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;{{ title or metadata.title }}&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&amp;lt;11ty&gt;{{ generatedDescription }}&amp;lt;/11ty&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;11ty&gt;HELLO I WAS GENERATED! {&quot;metadata&quot;:{&quot;title&quot;:&quot;Martin Hähnel&quot;,&quot;url&quot;:&quot;https://blog.martin-haehnel.de/&quot;,&quot;language&quot;:&quot;en&quot;,&quot;description&quot;:&quot;German living in Finland&#39;s north-west. Making money by programming remotely. Loves to write notes.&quot;,&quot;author&quot;:{&quot;name&quot;:&quot;Martin Hähnel&quot;,&quot;email&quot;:&quot;matti@omg.lol&quot;,&quot;url&quot;:&quot;https://blog.martin-haehnel.de/about/&quot;}},&quot;eleventyComputed&quot;:{},&quot;eleventy&quot;:{&quot;version&quot;:&quot;3.1.2&quot;,&quot;generator&quot;:&quot;Eleventy v3.1.2&quot;,&quot;env&quot;:{&quot;source&quot;:&quot;cli&quot;,&quot;runMode&quot;:&quot;serve&quot;,&quot;config&quot;:&quot;/Users/martinhahnel/Local/code/blog-monorepo/apps/blog/eleventy.config.js&quot;,&quot;root&quot;:&quot;/Users/martinhahnel/Local/code/blog-monorepo/apps/blog&quot;},&quot;directories&quot;: ...&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Great. But I just noticed another edge case: Footnotes shouldn&#39;t be included either! But I&#39;ll started in the simplest way and just use the filter from yesterday on the &lt;code&gt;rawInput&lt;/code&gt; to see what I get.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;11ty&amp;gt;Instead of a How-To, I&#39;ll write a &amp;quot;WhileDo&amp;quot; today. This is my attempt to [[Write Like You&#39;re Ron Jeffries|Write Like Ron…
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I see mostly more complexity. We want to keep only the titles of markdown link and want to otherwise remove brackets and other markdown completely from the text. I let copilot figure out the regexes and come put with this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;eleventyComputed&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function-variable function&quot;&gt;generatedDescription&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;html&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; raw &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; html &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutTags &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; raw&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;[^&gt;]*&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// keep only the titles of markdown links&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. [example](https://example.com) becomes &quot;example&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and [[link|title]] becomes &quot;title&quot; or [[link]] becomes &quot;link&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutLinks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutTags
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[([^&#92;]]+)&#92;]&#92;(([^)]+)&#92;)&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;$1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[&#92;[([^|&#92;]]+)(&#92;|([^|&#92;]]+))?&#92;]&#92;]&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;$3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// remove footnotes&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. &quot;Some text.[^1]&quot; becomes &quot;Some text.&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and &quot;Some text^[inline footnote]&quot; becomes &quot;Some text&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutFootnotes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutLinks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;(&#92;[&#92;^.+?&#92;])|(&#92;^&#92;[.+?&#92;])&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutFootnotes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;s+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Check if character at maxLength is a space or if we&#39;re at word boundary&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Find the next space after maxLength to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; nextSpace &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;nextSpace &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;// No more spaces, return the whole string&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Return up to the next space to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; nextSpace&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is basically the same filter we saw yesterday with some bolted on normalization. We now remove footnotes, simplify markdown links and remove html tags. But removing callouts is sadly not as simple, because they span multiple lines. So what now? I might need to parse the markdown with markdown-it. Maybe markdown-it let&#39;s me retrieve plain text and I don&#39;t have to do this myself even? Let&#39;s check. I guess not. Hm. It seems like not directly. I find a plugin &lt;a href=&quot;https://github.com/wavesheep/markdown-it-plain-text&quot;&gt;markdown-it-plain-text&lt;/a&gt; that might do what I want. I&#39;ll try that.&lt;/p&gt;
&lt;p&gt;There is this nagging feeling that bolting on another npm package on top of my stuff is not so great, but since this plugin doesn&#39;t have any dependencies it&#39;s probably okay. I replace all the regex stuff with this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;markdownit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;plainTextPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;html&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;plaintext&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;WAT&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While I&#39;m waiting for the build to finish... I somehow had a problem with the dev server just now... I wonder if rendering all posts twice just to extract 120 characters is worth it. But then again it probably is. I see a problem though. All posts have a description of &amp;quot;WAT!&amp;quot;, meaning normalized is not defined. Which is bad. Ah it was just &lt;code&gt;md.plaintext&lt;/code&gt; should&#39;ve been &lt;code&gt;md.plainText&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Coming back after a little break the created description of this post - which I am now using as the test file - looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[!NOTE]- Changelog 2025-10-04 - Added a changelog [!NOTE] Why is this here?Since this was the post to test my description…
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So we still have to deal with the callouts. I try to recall how markdown-it parsing works. I had understood it once for my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/&quot;&gt;Callout Plugin&lt;/a&gt;. We could maybe just have our own plugin that simply removes these tokens from the array as well? Let&#39;s see how the plaintext plugin actually works.&lt;/p&gt;
&lt;p&gt;I ask Copilot for help and explanations. But I feel like it moves too quickly and doesn&#39;t let me grasp what&#39;s going on. This is an interesting trait of these AI tools: They are pretty quick and often, when you know what&#39;s going on, that&#39;s helpful, but the markdown-it parser is somewhat involved and I feel like I would benefit from understanding it slightly more.&lt;/p&gt;
&lt;p&gt;Walked the dog. I think I will just combine my regex approach with a small callout removal plugin. I was also thinking about using JSDOM to parse and manipulate the HTML later - probably the leanest way to handle this. But if the results are good enough doing this, then I would be fine. This is what the agent generated before I left with the dog:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;stripCalloutsPlugin&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;md&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; calloutRegex &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^&#92;[!note&#92;]([+-]?)( +[^&#92;n&#92;r]+)?&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;core&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruler&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;after&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;strip_callouts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokens &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; state&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokensToRemove &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;idx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; openIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; closeIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; contentToken &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
				tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				openIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				closeIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;contentToken&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;calloutRegex&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;match&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token comment&quot;&gt;// Mark all tokens in this callout for removal&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; openIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; closeIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Remove tokens in reverse order to maintain indices&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; startIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; endIdx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; startIdx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; endIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;markdownit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;stripCalloutsPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;plainTextPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;plainText&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Looking at it now, and rereading parts of my callouts post, I get what this ad-hoc plugin does:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;look for tokens of type &lt;code&gt;blockquote_open&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;find the end of that block by doing a lock ahead until we find &lt;code&gt;blockquote_close&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;look with in open and close for the callout-indicating syntax via regex&lt;/li&gt;
&lt;li&gt;if we find it: mark all tokens in between open and close&lt;/li&gt;
&lt;li&gt;remove them back to front&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&#39;s the last part that I don&#39;t understand: Why are we doing it backwards? Time to open the ol&#39; &lt;a href=&quot;https://runjs.app&quot;&gt;RunJS&lt;/a&gt; and play around a little!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;const tokens = [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;fox&#39;, &#39;jumps&#39;, &#39;over&#39;, &#39;the&#39;, &#39;lazy&#39;, &#39;dog&#39;]
const openIdx = 3
const closeIdx = 6
const tokensToRemove = [ 3, 4, 5, 6 ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This means the code would mark &lt;code&gt;&#39;fox&#39;, &#39;jumps&#39;, &#39;over&#39;, &#39;the&#39;&lt;/code&gt; for removal. The backwards method of removing these words results in:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I do it by hand:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;backup2.splice(tokensToRemove[3], 1); // delete index 6 (the)
console.log(backup2);  // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;fox&#39;, &#39;jumps&#39;, &#39;over&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
backup2.splice(tokensToRemove[2], 1); // delete index 5 (over)
console.log(backup2);  // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;fox&#39;, &#39;jumps&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
backup2.splice(tokensToRemove[2], 1); // delete index 4 (jumps)
console.log(backup2);  // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;fox&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
backup2.splice(tokensToRemove[2], 1); // delete index 3 (fox)
console.log(backup2);  // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I go the other direction:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;backup.splice(tokensToRemove[0], 1); //index 3 (fox)
console.log(backup); // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;jumps&#39;, &#39;over&#39;, &#39;the&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
backup.splice(tokensToRemove[1], 1); //index 4 (jumps)
console.log(backup); // [ &#39;The&#39;, &#39;quick&#39;, &#39;brown&#39;, &#39;jumps&#39;, &#39;the&#39;, &#39;lazy&#39;, &#39;dog&#39; ]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We immediately see that removing index 4 after removing index 3 leads to problems. And I get it now: Removing any element rekeys/reindexes the array. So removing from the front changes the indexes for entries we want to removing leading to a removal of the wrong entries. Doing it backwards ensures that only elements after the elements we care about get reindexed, therefore keeping the found indexes intact! Great. I understand what&#39;s happening. Time to finish this version. Because the plaintext plugin doesn&#39;t strip out brackets or footnotes, I now run the whole regex block after markdown-it strips out the callouts/etc. Here&#39;s the whole data file:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; markdownit &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown-it&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; plainTextPlugin &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown-it-plain-text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;eleventyComputed&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function-variable function&quot;&gt;generatedDescription&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Custom plugin that strips callouts only&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;stripCalloutsPlugin&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;md&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; calloutRegex &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^&#92;[!note&#92;]([+-]?)( +[^&#92;n&#92;r]+)?&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;core&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruler&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;after&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;strip_callouts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokens &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; state&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokensToRemove &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;idx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; openIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; closeIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; contentToken &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
				tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				openIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				closeIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;contentToken&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;calloutRegex&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;match&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token comment&quot;&gt;// Mark all tokens in this callout for removal&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; openIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; closeIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Remove tokens in reverse order to maintain indices&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; startIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; endIdx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; startIdx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; endIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;markdownit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;stripCalloutsPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;plainTextPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; raw &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;plainText&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutTags &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; raw&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;[^&gt;]*&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// keep only the titles of markdown links&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. [example](https://example.com) becomes &quot;example&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and [[link|title]] becomes &quot;title&quot; or [[link]] becomes &quot;link&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutLinks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutTags
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[([^&#92;]]+)&#92;]&#92;(([^)]+)&#92;)&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;$1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[&#92;[([^|&#92;]]+)(&#92;|([^|&#92;]]+))?&#92;]&#92;]&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;$3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// remove footnotes&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. &quot;Some text.[^1]&quot; becomes &quot;Some text.&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and &quot;Some text^[inline footnote]&quot; becomes &quot;Some text&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutFootnotes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutLinks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;(&#92;[&#92;^.+?&#92;])|(&#92;^&#92;[.+?&#92;])&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutFootnotes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;s+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Check if character at maxLength is a space or if we&#39;re at word boundary&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Find the next space after maxLength to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; nextSpace &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;nextSpace &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;// No more spaces, return the whole string&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Return up to the next space to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; nextSpace&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This blog post&#39;s beginning:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; [!NOTE]- Changelog
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token list punctuation&quot;&gt;-&lt;/span&gt; 2025-10-04 - Added a changelog


&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; [!NOTE] Why is this here?
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; Since this was the post to test my description generation feature, this one has all the elements (callouts of different kinds, footnotes, linkes, linebreaks, even html) that I do not want to have included in my description.


&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;h3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Let&#39;s continue&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;h3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

Another[[WhileDo]] post.^[These are fun to write and kind of write themselves.] Of course, my amazing work yesterday had one fatal flaw and that is that the preview card did…&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And here&#39;s what &lt;code&gt;makeDescription&lt;/code&gt; produces:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Let&#39;s continue Another post. Of course, my amazing work yesterday had one fatal flaw and that is that the preview card did…
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Heck. It should read &amp;quot;Let&#39;s continue Another WhileDo post.&amp;quot; but the WhileDo is missing. I realize the link removal regex is broken somehow. Time to use &lt;a href=&quot;https://www.debuggex.com&quot;&gt;debuggex&lt;/a&gt; to figure it out! I can see that the capture groups aren&#39;t working correctly.&lt;/p&gt;
&lt;p&gt;I let AI take a crack at it. Now it works. I can feel a little pang of something... but it&#39;s not really guilt. It&#39;s shame. I enjoy working in this way. But I feel like people will judge me for using it. I can read and understand all the code and I could&#39;ve figured out the regex issue myself, but I don&#39;t mind that the model worked it out for me. I feel vulnerable writing lab notes like this. However if I wouldn&#39;t write these down, the shame would be much less pronounced. I don&#39;t know if this is good or bad. To me, the important part is that the description feature now works as intended and strips out superfluous elements. It is not the most beautiful solution, but I am not really &amp;quot;done&amp;quot; with it either. I quickly fix the base template and remove the filter code from yesterday:&lt;/p&gt;
&lt;pre class=&quot;language-twig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-twig&quot;&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;if&lt;/span&gt; isPost &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; pageDescription &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; description &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; generatedDescription &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; pageDescription &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; description &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;description &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here&#39;s the finished data file once more:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; markdownit &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown-it&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; plainTextPlugin &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;markdown-it-plain-text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;eleventyComputed&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function-variable function&quot;&gt;generatedDescription&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Custom plugin that strips callouts only&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;stripCalloutsPlugin&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;md&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; calloutRegex &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^&#92;[!note&#92;]([+-]?)( +[^&#92;n&#92;r]+)?&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;core&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruler&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;after&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;strip_callouts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokens &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; state&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokensToRemove &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;idx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; openIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; closeIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; contentToken &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
				tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				openIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				closeIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;contentToken&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;calloutRegex&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;match&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

			&lt;span class=&quot;token comment&quot;&gt;// Mark all tokens in this callout for removal&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; openIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; closeIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Remove tokens in reverse order to maintain indices&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokensToRemove&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; startIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; endIdx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; startIdx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; endIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;regexCleanup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutTags &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; input&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;[^&gt;]*&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// keep only the titles of markdown links&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. [example](https://example.com) becomes &quot;example&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutExternalLinks &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutTags&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[([^&#92;]]+)&#92;]&#92;(([^)]+)&#92;)&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;$1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and [[link|title]] becomes &quot;title&quot; and [[link]] becomes &quot;link&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// First handle [[link|title]] format (becomes &quot;title&quot;)&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutInternalLinksWithTitle &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutExternalLinks&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[&#92;[([^|&#92;]]+)&#92;|([^|&#92;]]+)&#92;]&#92;]&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;$2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// Then handle [[link]] format (becomes &quot;link&quot;)&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutInternalLinksSimple &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutInternalLinksWithTitle&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;[&#92;[([^|&#92;]]+)&#92;]&#92;]&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;$1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// remove footnotes&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// e.g. &quot;Some text.[^1]&quot; becomes &quot;Some text.&quot;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;// and &quot;Some text^[inline footnote]&quot; becomes &quot;Some text&quot;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutFootnotes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutInternalLinksSimple&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
		&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;(&#92;[&#92;^.+?&#92;])|(&#92;^&#92;[.+?&#92;])&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; withoutFootnotes&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;markdownCleanup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;markdownit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;stripCalloutsPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;plainTextPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;input&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;plainText&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;makeDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; md &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;markdownCleanup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rawInput&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;regexCleanup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;md&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Check if character at maxLength is a space or if we&#39;re at word boundary&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Find the next space after maxLength to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; nextSpace &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;nextSpace &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;// No more spaces, return the whole string&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

	&lt;span class=&quot;token comment&quot;&gt;// Return up to the next space to complete the word&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; nextSpace&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;These are fun to write and kind of write themselves. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/04/more-description/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        More Description

        https://blog.martin-haehnel.de/2025/10/04/more-description/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1407 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/03/dailydogo1407/" />
      <updated>2025-10-03T20:45:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/03/dailydogo1407/</id>
      <content type="html">&lt;p&gt;DailyDogo 1407 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking happy and ready to play while being half hidden under a dog blanket in her dog bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d030819fb3086f2d6edd15902a9bbe1b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1407 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          WhileDo



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/03/whiledo/" />
      <updated>2025-10-03T11:49:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/03/whiledo/</id>
      <content type="html">&lt;p&gt;Instead of a How-To, I&#39;ll write a &amp;quot;WhileDo&amp;quot; today.&lt;/p&gt;
&lt;p&gt;This is my attempt to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/&quot;&gt;Write Like Ron Jeffries&lt;/a&gt;. After I published this little post, I realized that I had tried something similar in the past called &lt;a href=&quot;https://blog.martin-haehnel.de/tags/buildinpublic/&quot;&gt;build in public&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, but there the point was more to immediately post things as they were happening. But that&#39;s not necessarily a hard rule. I&#39;ll add build in public tags to this and the Ron Jeffries post. I want to do two things on the blog today. Or rather: I want to finish one and start with another:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have descriptive text show up on those &amp;quot;cards&amp;quot; on Mastodon instead of my short bio.&lt;/li&gt;
&lt;li&gt;Work on a versioning system for my blog posts&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;task-1-descriptive-text&quot;&gt;Task 1 descriptive text&lt;/h3&gt;
&lt;p&gt;This is what I mean:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing a cross posted link to my Ron Jeffries article. It shows that my &amp;amp;quot;preview card&amp;amp;quot; for the blog post includes the blog&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bf982a94ea349c802d2d526bc4c5e882.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This is called a &lt;a href=&quot;https://docs.joinmastodon.org/entities/PreviewCard/&quot;&gt;preview card&lt;/a&gt; it seems. And it is generated using OpenGraph tags. I remember that these tags are metatags and that they come in the form of OG:somethingsomething.&lt;/p&gt;
&lt;p&gt;I poke around my blog&#39;s repo - which is private btw. - and see that if they should be somewhere, they should be in the &lt;code&gt;base.njk&lt;/code&gt; which is the most basic layout template I have. Everything (well almost) builds on top of that.&lt;/p&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token doctype&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span class=&quot;token doctype-tag&quot;&gt;doctype&lt;/span&gt; &lt;span class=&quot;token name&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ metadata.language }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;utf-8&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;viewport&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;width=device-width, initial-scale=1.0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;{{ title or metadata.title }}&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;description&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ description or metadata.description }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;alternate&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/feed.xml&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;application/atom+xml&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ metadata.title }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;generator&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ eleventy.generator }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

		{%- css %}{% include &quot;public/css/index.css&quot; %}{% endcss %}
		{%- css %}{% include &quot;public/css/message-box.css&quot; %}{% endcss %}
		{#- Render the CSS bundle using inlined CSS (for the fastest site performance in production) #}
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token style&quot;&gt;&lt;span class=&quot;token language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;% getBundle &lt;span class=&quot;token string&quot;&gt;&quot;cssFIRST&quot;&lt;/span&gt; %&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		{#- Add the heading-anchors web component to the JavaScript bundle #}
		{%- js %}{% include &quot;node_modules/@zachleat/heading-anchors/heading-anchors.js&quot; %}{% endjs %}
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But as we can see, there are no OpenGraph tags here. I suspect immediately it&#39;s just the description that is used. I&#39;ll just try that. Either it works, or I have to dig deeper, we&#39;ll see. This won&#39;t decide if we can or can&#39;t land on the moon.&lt;/p&gt;
&lt;p&gt;The more important part is how I want to handle descriptions. I&#39;d like it to work something like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If it&#39;s a blog post
&lt;ol&gt;
&lt;li&gt;use description&lt;/li&gt;
&lt;li&gt;fallback: the first few words of the post&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Otherwise:
&lt;ol&gt;
&lt;li&gt;use the description&lt;/li&gt;
&lt;li&gt;fallback: use the site&#39;s description&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&#39;m hesitant to start Codex, then OpenAI coding tool I have access to through my work, because I am now so visible and out in the open, but I do it anyway. My reasoning is that this is basically grunt work, and I&#39;d like to spend more time on defining and refining the second task.&lt;/p&gt;
&lt;p&gt;Before I even finish writing a first prompt, I grab a description from a random mastodon post (that I have since lost, sadly):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Now that l&#39;ve moved back to Sweden without most of my stuff (it&#39;ll be on a ship soon enough), everyone&#39;s got suggestions...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&#39;s 120 chars long. I think this is a good length. I want the description to include full words and end on an ellipsis (…). Some edge cases are to be considered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if the blog post is shorter than 120 chars for some reason? We post it in full.&lt;/li&gt;
&lt;li&gt;if the first few words include tags? We strip them. And we count without tags.&lt;/li&gt;
&lt;li&gt;if the last word would make the description longer than 120 chars? We include it anyway. But only that one word.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I let the agent do its thing, ask a couple of things for it to check. As always, the agent is programming way too defensively for my taste. I&#39;d rather fail loudly if my assumptions don&#39;t hold. In the end, we have a nice solution.&lt;/p&gt;
&lt;p&gt;We set an &lt;code&gt;isPost&lt;/code&gt; flag in &lt;a href=&quot;https://www.11ty.dev/docs/data-template-dir/&quot;&gt;blog.11tydata.js&lt;/a&gt; in the dir where all my blog posts can be found:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In &lt;code&gt;base.njk&lt;/code&gt; we now do this:&lt;/p&gt;
&lt;pre class=&quot;language-twig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-twig&quot;&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;if&lt;/span&gt; isPost &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; pageDescription &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; description &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; postContentExcerpt&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; pageDescription &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; description &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;description &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;-%}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And we now have a new filter doing the main work:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;postContentExcerpt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;html&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; raw &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; html &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutTags &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; raw&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;[^&gt;]*&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutTags&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;s+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;first&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;rest&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Boolean&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; first &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; word &lt;span class=&quot;token keyword&quot;&gt;of&lt;/span&gt; rest&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; next &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;result&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;word&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;next&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; next&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		result &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; next&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; result&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I&#39;m not 100% in love how the filter looks, but I want to test if it works first... it doesn&#39;t. I get a weird error that might have nothing to do with the new filter, actually I get a bunch of errors and warnings when running &lt;code&gt;pnpm dev&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;❓ Your types might be out of date. Re-run &lt;/code&gt;wrangler types&lt;code&gt; to ensure your types are correct.&lt;/code&gt; - that has nothing to do with the blog but with the API, I&#39;ll leave that be for the moment&lt;/li&gt;
&lt;li&gt;&lt;code&gt;▲ [WARNING] Miniflare does not currently trigger scheduled Workers automatically.&lt;/code&gt; - that is not actionable for me, and I&#39;d say not even really a warning.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(node:6188) [DEP0169] DeprecationWarning: &lt;/code&gt;url.parse()&lt;code&gt;behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for&lt;/code&gt;url.parse()&lt;code&gt; vulnerabilities.&lt;/code&gt; - this has been like this for a while, I&#39;ll skip that too for now.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[wrangler:warn] The latest compatibility date supported by the installed Cloudflare Workers Runtime is &amp;quot;2025-08-23&amp;quot;, but you&#39;ve requested &amp;quot;2025-09-18&amp;quot;. Falling back to &amp;quot;2025-08-23&amp;quot;...&lt;/code&gt; - skip&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Error: Could not parse CSS stylesheet&lt;/code&gt; - that we&#39;ll have to solve&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[11ty] Problem writing Eleventy templates: Output conflict: multiple input files are writing to &lt;/code&gt;./_site/tags/buildinpublic/index.html&lt;code&gt;. Use distinct &lt;/code&gt;permalink&lt;code&gt; values to resolve this conflict.&lt;/code&gt; - that one too&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The CSS stylesheet thing I hand over to codex while I am thinking about it myself. I assume it&#39;s some kind of problem that has to do with our filter or something. Could be that stripping tags alone isn&#39;t enough because it might still include templating or something? But then again: we just use &lt;code&gt;content&lt;/code&gt; and not the whole rendered page here. Codex iterates and fails at this. I also just now notice that the filter returns only the first n words. Which means that if &lt;code&gt;content&lt;/code&gt; includes the rendered html (instead of the post&#39;s body) then it should only include the first few lines of the full html page minus tags. I guess it could still include template tags.&lt;/p&gt;
&lt;p&gt;After more back-and-forth and different approaches, I just undo the whole thing. It still doesn&#39;t work. Huh? The CSS issue still presents itself. So it had nothing to do with the new description? ... and then I see what&#39;s wrong: &lt;em&gt;This post&lt;/em&gt; - which I have started writing in my blog repo - includes the head part of my base layout file which includes what?&lt;/p&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token style&quot;&gt;&lt;span class=&quot;token language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;% getBundle &lt;span class=&quot;token string&quot;&gt;&quot;cssSECOND&quot;&lt;/span&gt; %&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and Eleventy sees that and explodes. Why? Because we would&#39;ve needed to use &lt;a href=&quot;https://mozilla.github.io/nunjucks/templating.html#raw&quot;&gt;raw/endraw&lt;/a&gt; so that these template tags are not interpreted. Dang. Well... or so I thought. The nightmare doesn&#39;t end there. Just putting raw/endraw everywhere doesn&#39;t solve the problem.&lt;/p&gt;
&lt;p&gt;I ask codex and I start googling. Maybe I can &amp;quot;just&amp;quot;™ let Eleventy treat things inside markdown code blocks as plain text? I have built a small &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/&quot;&gt;markdown-it extension for callouts&lt;/a&gt; before. It might be possible. It&#39;s not possible because the templating engine comes first. That code blocks are not protected by default is by design according to &lt;a href=&quot;https://github.com/11ty/eleventy/issues/2434#issuecomment-1155346598&quot;&gt;comments on this issue&lt;/a&gt; from 2022. Bummer. I remove the work done so far just to make sure that it isn&#39;t something we have added. The only changes in the repo are from this blogpost.&lt;/p&gt;
&lt;p&gt;According to another comment from the aforementioned issue:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you&#39;re using it in a fenced code block but do NOT want Liquid to parse a block of code, you&#39;d need to wrap it in {% raw %}...{% endraw %} tags to avoid LiquidJS trying to parse some handlebars-esque code:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{%- raw -%}
&amp;lt;div {{@foo &amp;quot;default&amp;quot;}}&amp;gt;this&amp;lt;/div&amp;gt;
{% endraw -%}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This would still let you use Liquid elsewhere in your Markdown template, if that&#39;s something you need/want.&lt;/p&gt;
&lt;p&gt;If you don&#39;t want Liquid to preprocess your Markdown, you can turn if off globally in the config, or on a per-template basis using something like templateEngineOverride:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
templateEngineOverride: md
---
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-hbs&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-hbs&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;div&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;foo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;default&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;But setting &lt;code&gt;templateEngineOverride: md&lt;/code&gt; does nothing. I start fighting with the AI agent. It really isn&#39;t very helpful right now. According to Eleventy&#39;s docs &lt;code&gt;templateEngineOverride: md&lt;/code&gt; ought to be working...&lt;/p&gt;
&lt;p&gt;Meanwhile I solve the &lt;code&gt;multiple input files are writing to ./_site/tags/buildinpublic/index.html&lt;/code&gt; error: Tags have to be unique and buildinpublic and BuildInPublic are the same to Obsidian but not to Eleventy.&lt;/p&gt;
&lt;p&gt;But back to the bigger issue. Nothing has changed. I found out that it does work if I disable the &lt;code&gt;markdownTemplateEngine&lt;/code&gt; site wide. But I don&#39;t want to do that since that would break older posts. I&#39;ll have to test it on a pristine base blog. Maybe this is a bug? Of course, with a new base blog install it works. It works wrapping in raw/endraw tags, and it works by setting the &lt;code&gt;templateEngineOverride&lt;/code&gt;. This is bad. Because it means it&#39;s something about my blog&#39;s config.&lt;/p&gt;
&lt;p&gt;Went out with the dog, cleaned the kitchen, took a break away from the keyboard. Time to think about commenting out bits of the config to see if any of my customizations causes this. On a whim, I try out the copilot agent mode of vs code as well. It does the work of bisecting my various eleventy and markdown-it plugins for me. And voilà: It&#39;s the interlinker plugin which parses the site using JSDOM which somehow led to already escaped code to be interpreted again.&lt;/p&gt;
&lt;p&gt;Actually: The issue is not with template tags, but with style tags. Since what causes the error is that what&#39;s between the style tags in not CSS:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;style&amp;gt;{% getBundle &amp;quot;cssFIRST&amp;quot; %}&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We&#39;re still not done, though. Because I need to figure out how to stop this behavior.&lt;/p&gt;
&lt;p&gt;I have now forked the interlinker plugin and try - together with the AI - different approaches to escape problematic tags. I create &lt;a href=&quot;https://github.com/photogabble/eleventy-plugin-interlinker/issues/73&quot;&gt;an issue&lt;/a&gt; in the github repo and work on a fix. Or rather, the agent is. Btw: No way in hell would I have had the depth of knowledge or time to hone in on the error, nor even dream of working on a fix. So it&#39;s all good. Or, mostly good. There would have just been way too much surface for me to cover in my free time. I can read the code and make sense of it and judge it and so on, but I would have not been able to put the pieces together so quickly and in a way that lets me figure out the best approach after trying a couple of others.&lt;/p&gt;
&lt;p&gt;The agent is surely the better grunt but I am the ideas man: We can just silence the CSS-parsing error from JSDOM! We don&#39;t need interlinker to care about this, as it is only interested in links anyway.&lt;/p&gt;
&lt;p&gt;In the end, this is all the code we need to make JSDOM and therefore interlinker and also my blog happy:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; virtualConsole &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;VirtualConsole&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
virtualConsole&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;jsdomError&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// heads-up! in later versions this is called &quot;css-parsing&quot; but the currently used version is &quot;css parsing&quot;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;css parsing&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;css-parsing&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;warn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
      &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;[@photogabble/eleventy-plugin-interlinker] CSS parsing error (ignored): &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;error&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;message&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;error&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; dom &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;JSDOM&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; virtualConsole &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;JSDOM changing the &lt;code&gt;error.type&lt;/code&gt; between what is in the main branch and what was used in the interlinker plugin was its own little riddle.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://github.com/photogabble/eleventy-plugin-interlinker/pull/74&quot;&gt;PR&lt;/a&gt; is out, let&#39;s hope it gets merged soon. Until then, I need to use my fork.&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; git+https://github.com/finn-matti/eleventy-plugin-interlinker.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Where was I? Right.&lt;/p&gt;
&lt;p&gt;My description fix! Invigorated by the successful work the copilot agent did, I let it redo the changes that codex had done first. After fiddling a little with what it wrote, this is now the solution that went live:&lt;/p&gt;
&lt;h4 id=&quot;base-njk&quot;&gt;&lt;code&gt;base.njk&lt;/code&gt;:&lt;/h4&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token doctype&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;!&lt;/span&gt;&lt;span class=&quot;token doctype-tag&quot;&gt;doctype&lt;/span&gt; &lt;span class=&quot;token name&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ metadata.language }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;utf-8&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;viewport&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;width=device-width, initial-scale=1.0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;{{ title or metadata.title }}&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		{%- if isPost -%}
			{%- set pageDescription = description or (content | postContentExcerpt(120)) -%}
		{%- else -%}
			{%- set pageDescription = description or metadata.description -%}
		{%- endif -%}
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;description&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ pageDescription }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;alternate&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;/feed.xml&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;application/atom+xml&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ metadata.title }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;meta&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;generator&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;{{ eleventy.generator }}&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

		{%- css %}{% include &quot;public/css/index.css&quot; %}{% endcss %}
		{%- css %}{% include &quot;public/css/message-box.css&quot; %}{% endcss %}
		{#- Render the CSS bundle using inlined CSS (for the fastest site performance in production) #}
		&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token style&quot;&gt;&lt;span class=&quot;token language-css&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;% getBundle &lt;span class=&quot;token string&quot;&gt;&quot;css&quot;&lt;/span&gt; %&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
		{#- Add the heading-anchors web component to the JavaScript bundle #}
		{%- js %}{% include &quot;node_modules/@zachleat/heading-anchors/heading-anchors.js&quot; %}{% endjs %}
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;blog-11tydata-js&quot;&gt;&lt;code&gt;blog.11tydata.js&lt;/code&gt;&lt;/h4&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;permalink&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;isPost&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;filters-js&quot;&gt;&lt;code&gt;filters.js&lt;/code&gt;&lt;/h4&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;postContentExcerpt&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;html&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; raw &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; html &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; withoutTags &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; raw&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&amp;lt;[^&gt;]*&gt;&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; normalized &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; withoutTags&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;s+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;g&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Check if character at maxLength is a space or if we&#39;re at word boundary&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;maxLength&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;undefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Find the next space after maxLength to complete the word&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; nextSpace &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; maxLength&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;nextSpace &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token comment&quot;&gt;// No more spaces, return the whole string&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

		&lt;span class=&quot;token comment&quot;&gt;// Return up to the next space to complete the word&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; normalized&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substring&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; nextSpace&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;…&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It is now 23:13, I started to work on this at 14:00. So... what? 9 hours? Minus dog walking, kitchen cleaning and a couple of other things. I used a lot of AI tooling to get things done. Made and makes me feel weird, because I suspect that people won&#39;t like it. But I have written about &lt;a href=&quot;https://blog.martin-haehnel.de/tags/quoteaiunquote/&quot;&gt;my stance on AI before&lt;/a&gt;, and I feel like I have not been frivolous but used AI here in a way that helped me trace a pretty intractable problem and it even lead to a little PR in a useful package that hopefully will prevent errors like this from cropping up for other people. AI tools used today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copilot autocompletion in VSCode&lt;/li&gt;
&lt;li&gt;Codex-cli from OpenAI using ChatGPT-5&lt;/li&gt;
&lt;li&gt;Copilot agent mode in VSCode using Claude Sonnet 4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the coding agents used, Copilot + Claude impressed me. Codex is pretty solid, but Copilot agent mode with Claude Sonnet 4 (which isn&#39;t even the newest and best offering) is seemingly better.&lt;/p&gt;
&lt;p&gt;The actual work on the actual description text feature was minuscule: Not even 50 lines of code. I had thought that I would find the time to really get in there and think about the filter code a bunch and how to make it better. But this is how it goes sometimes. Nice that I managed to find the problem with the BuiltInPublic tag as well while doing other things.&lt;/p&gt;
&lt;p&gt;The big versioning feature for blog posts stays untouched. That&#39;s fine. I&#39;m looking forward to doing something less intense after hitting publish here.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Which has an unpleasant association with one Vincent Ritter, who is known to be a transphobe and Elon Musk lover. Building in public is not his invention though, and I feel it would be shady to not make that association obvious. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/whiledo/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        WhileDo

        https://blog.martin-haehnel.de/2025/10/03/whiledo/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Write Like You&#39;re Ron Jeffries



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/" />
      <updated>2025-10-03T06:40:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-06 - Added a post script with a quote from Ron Jeffries reflecting on these kinds of notes.&lt;/li&gt;
&lt;li&gt;2025-10-08 - Managed to misspell the man&#39;s name in the first sentence of this blog post! Fixed.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I know of &lt;a href=&quot;https://en.wikipedia.org/wiki/Ron_Jeffries&quot;&gt;Ron Jeffries&lt;/a&gt;, because he is one of the founders of &lt;a href=&quot;https://en.wikipedia.org/wiki/Extreme_programming&quot;&gt;Extreme Programming&lt;/a&gt; and one of the signatories of the &lt;a href=&quot;https://agilemanifesto.org&quot;&gt;agile manifesto&lt;/a&gt; which makes him an important part of software development history.&lt;/p&gt;
&lt;p&gt;But that&#39;s not what I wanted to write about. I just love to read his writing on doing the actual programming while it is happening! At the moment he seems to be working on a python project:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My peregrinations led me to a problem that interests me: steam locomotive linkages. I’ve decided to play with animating them with Python. My understanding is that the “real” way to solve linkages is with matrices, and that is exactly not my plan. I plan to solve the problem geometrically. Probably lots and lots of triangles.&lt;/p&gt;
&lt;p&gt;I’ve started prior to this article, so we’ll pick up in the middle and explore the beginnings as we need to. The essence of my thinking is that the locomotive’s drive wheel will be the origin of the motion, not, as in real locomotives, the drive pistons. I think that given a position of the drive wheel and the crank pins on it, we can calculate where the rest of the linkage has to be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;a href=&quot;https://ronjeffries.com/articles/-w025/y/t/&quot;&gt;Now For Something ...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A little later in the series of posts about this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Intuitively, it seems that we should be able to refactor to pass the two points to &lt;code&gt;update&lt;/code&gt;, while leaving the update alone, to fetch its own copies of the &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;finish&lt;/code&gt;, as they do now. Then we can adjust each &lt;code&gt;update&lt;/code&gt; method one at a time. keeping the airship flying the whole time. And returning the two points can be deferred, since as things stand, we do have methods to return them.&lt;/p&gt;
&lt;p&gt;This is an over-simplification, I’m sure, not least because our objects aren’t yet fully consistent in their use of &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;finish&lt;/code&gt;. We could, of course, continue as we were, saving this change for later, but I am inclined to go ahead with it now.&lt;/p&gt;
&lt;p&gt;Let’s look to see how we might use the PyCharm Change Signature and other refactoring operations to make this job safe and easy. When you specify a Change Signature, you can enter default values for parameters, which PyCharm will insert into the calls. I’m not sure quite how to use that capability, so let’s look at some current &lt;code&gt;update&lt;/code&gt; calls.&lt;/p&gt;
&lt;p&gt;There’s this one in the code that draws my animations:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for component in components:
 	component.update()
 	component.init_draw(canvas)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’ll do that by hand, right now … no, in fact I won’t. Despite my decision above, I think we need to do a bit of preparation before we proceed with this. Patience, Prudence, patience.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;a href=&quot;https://ronjeffries.com/articles/-w025/y/e/&quot;&gt;Improvement Idea&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And so forth. I have read many a text like this - albeit from different fields and times - in my time as a student of history of science and technology and have always loved glimpses into the minds of people who are trying to solve a problem.&lt;/p&gt;
&lt;p&gt;Texts like this are very different from how you&#39;d write a &amp;quot;how-to&amp;quot;: Everything is out in the open. Things that are unclear are not hidden. The meandering pace of solving a problem, of how ideas develop and how people create are not replaced by the slick surface of the perfect how-to in which everything seemed to have worked on the first try, was clear from the beginning. Jeffries&#39; texts on the other hand document the doing in the making, learning in the making. It makes it obvious that that which is presented is very often not how it was derived.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I personally want to read &lt;em&gt;and write&lt;/em&gt; more texts like this. About programming and otherwise.&lt;/p&gt;
&lt;p&gt;P.S.: I found a post in which Ron Jeffries himself reflects on these &amp;quot;dev lab notes&amp;quot; in the context of &lt;a href=&quot;https://ronjeffries.com/articles/-w025/y/v/&quot;&gt;LLM as a pair programmer&lt;/a&gt; (which he doesn&#39;t like, but that&#39;s a different story):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In recent years, by which I mean many recent years, I have not had a pair to work with at all. My pair, such as it is, is the article I write while programming. The writing gives me the chance to see the code from more distance and gives my mind time to come up with alternatives, issues, ideas, similar to what a pair might do. It’s far from perfect, but it’s what I’ve got.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This is &lt;em&gt;still&lt;/em&gt; true of course of these kinds of &amp;quot;lab notes&amp;quot; as well: &amp;quot;In Toward a History of Epistemic Things I attempted to show that the experimental order of things is realized in a dynamic process condensed in experimental systems.&amp;quot; as Hans-Jörg Rheinberger says in &lt;a href=&quot;https://pure.mpg.de/rest/items/item_3281778/component/file_3281779/content&quot;&gt;On the Narrative Order of Experimentation&lt;/a&gt; on page 86. As programmers, we&#39;re similarily involved in a quite dynamic process and the narrative form can only convey so much of its volatility. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Write Like You&#39;re Ron Jeffries

        https://blog.martin-haehnel.de/2025/10/03/write-like-you-re-ron-jeffries/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1406 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/02/dailydogo1406/" />
      <updated>2025-10-02T19:23:23Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/02/dailydogo1406/</id>
      <content type="html">&lt;p&gt;DailyDogo 1406 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and looking ready to play&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6ffa7efa8271b67315ce76c91944bc47.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1406 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1405 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/10/01/dailydogo1405/" />
      <updated>2025-10-01T19:58:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/10/01/dailydogo1405/</id>
      <content type="html">&lt;p&gt;DailyDogo 1405 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan rolling around on the beach. There are reeds an interesting looking cloudy sky in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c2cb71f75b3ac0846bf6f6df7ae17908.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1405 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1404 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/30/dailydogo1404/" />
      <updated>2025-09-30T19:01:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/30/dailydogo1404/</id>
      <content type="html">&lt;p&gt;DailyDogo 1404 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in between a couch and a foot stool.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;image&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;image&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/99ef86cb6c268b713911e9deb0b16b1d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1404 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1403 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/29/dailydogo1403/" />
      <updated>2025-09-29T18:50:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/29/dailydogo1403/</id>
      <content type="html">&lt;p&gt;DailyDogo 1403 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in her dog bed and watching excitedly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/387666db6465adcfdcb62845a2c4cc50.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1403 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1402 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/28/dailydogo1402/" />
      <updated>2025-09-28T19:04:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/28/dailydogo1402/</id>
      <content type="html">&lt;p&gt;DailyDogo 1402 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching out from under the tent of her dog bed. She smiles into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/58af526b92d85652efbbd4df98c20794.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1402 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1401 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/27/dailydogo1401/" />
      <updated>2025-09-27T20:05:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/27/dailydogo1401/</id>
      <content type="html">&lt;p&gt;DailyDogo 1401 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan with a dog toy in her mouth. Sitting on the floor, she is watching right into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c741f05b5c8afc91e935b6cec3ca1823.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1401 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1400 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/26/dailydogo1400/" />
      <updated>2025-09-26T20:40:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/26/dailydogo1400/</id>
      <content type="html">&lt;p&gt;DailyDogo 1400 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping on her dog bed on the balcony. There are a few empty plant pots visible and below on the ground we can see a canal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/23e829eb7dc6975e71944b2def102e3c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1400 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          St. Jude 2025



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/26/st-jude-2025/" />
      <updated>2025-09-26T15:45:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/26/st-jude-2025/</id>
      <content type="html">&lt;p&gt;This is just a short note, but that doesn&#39;t mean it&#39;s not an important cause: The podcast network &lt;a href=&quot;https://relay.experience.stjude.org&quot;&gt;relay.fm&lt;/a&gt; but also parts of the Indieweb, especially (at least from my perspective) &lt;a href=&quot;https://tiltify.com/@rknightuk/stjude2025&quot;&gt;Robb Knight and Adam Newbold&lt;/a&gt; are doing a lot of fund raising for child hood cancer research.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rknight.me/blog/st-jude-2025/&quot;&gt;Robb has a great overview page&lt;/a&gt; with other pages like [Donation Daddy](Donation Daddy) and &lt;a href=&quot;https://donationtreats.rknight.me&quot;&gt;Donation Treats&lt;/a&gt; to make helping St. Jude even more enticing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S.: I personally gave to Robb and Adam directly, but it can be very fun to help someone reach their goal of getting a coin or some other fund raising price or get something extra on top.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        St. Jude 2025

        https://blog.martin-haehnel.de/2025/09/26/st-jude-2025/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Matti Has Moved



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/" />
      <updated>2025-09-26T15:18:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/</id>
      <content type="html">&lt;p&gt;Just to memorialize it here on the blog: As I said in my post &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/&quot;&gt;Im Ascheregen&lt;/a&gt;, I was going to move my mastodon account and now did so. I&#39;ve followed &lt;a href=&quot;https://fedi.tips/transferring-your-mastodon-account-to-another-server/&quot;&gt;Fedi.Tips&#39; post&lt;/a&gt; on how to move accounts safely and apart from &lt;a href=&quot;https://hachyderm.io/@finn_matti/115259283039118762&quot;&gt;a weird issue with older posts&lt;/a&gt; - if they get faved or reposted &lt;a href=&quot;https://getmona.app&quot;&gt;Mona&lt;/a&gt; reports an error in the push notification - everything seemed to have worked.&lt;/p&gt;
&lt;p&gt;So where did I ended up moving to? I moved to &lt;a href=&quot;https://hachyderm.io&quot;&gt;Hachyderm.io&lt;/a&gt; and their &lt;a href=&quot;https://hachyderm.io/about&quot;&gt;about page&lt;/a&gt; describes what this server is about:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Here we are trying to build a curated network of respectful professionals in the tech industry around the globe. Welcome anyone who follows the rules and needs a safe home or fresh start.&lt;/p&gt;
&lt;p&gt;We are hackers, professionals, enthusiasts, and are passionate about life, respect, and digital freedom. We believe in peace and balance.&lt;/p&gt;
&lt;p&gt;Safe space. Tech Industry. Economics. OSINT. News. Rust. Linux. Aurae. Kubernetes. Go. C. Infrastructure. Security. Black Lives Matter. LGTBQIA+. Pets. Hobbies.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have not a lot to do with C or Rust (and only ever touch trace amounts of Go) or know whatever OSINT is&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, but I am a tech professional, support LGTBQIA+ rights, black lives matter to me, I have a pet and I do enjoy me some hobbies. Some ambiguities aside, it seemed like a good fit, since some respected people are on this server as well, like &lt;a href=&quot;https://www.mollywhite.net&quot;&gt;Molly White&lt;/a&gt; whose judgement I trust.&lt;/p&gt;
&lt;p&gt;So. Yeah. If you&#39;re looking for me: &lt;a href=&quot;https://hachyderm.io/@finn_matti&quot;&gt;Look here.&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Aperently that is &lt;a href=&quot;https://en.wikipedia.org/wiki/Open-source_intelligence&quot;&gt;Open-source intelligence&lt;/a&gt;, but I still don&#39;t know what that means in the context of this server &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Matti Has Moved

        https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Selfcare.Tech



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/26/selfcare-tech/" />
      <updated>2025-09-26T15:05:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/26/selfcare-tech/</id>
      <content type="html">&lt;p&gt;I love &lt;a href=&quot;https://selfcare.tech&quot;&gt;selfcare.tech&lt;/a&gt; and its mastodon bots by &lt;a href=&quot;https://aquantityofstuff.com&quot;&gt;Jennifer Parsons&lt;/a&gt;. Every &lt;a href=&quot;https://hachyderm.io/@selfcare&quot;&gt;3 hours&lt;/a&gt; (or every &lt;a href=&quot;https://hachyderm.io/@selfcaregentle&quot;&gt;6 hours&lt;/a&gt;) they post a new reminder to, for example, drop your shoulders or rest your eyes. The site itself lists a bunch of resources around this topic, but to me the simple genius lies in the bots. Just follow them, get reminded to take care of yourself, profit.&lt;/p&gt;
&lt;p&gt;P.S.: I guess that&#39;s one of the nice things of &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/&quot;&gt;moving to a new mastodon instance&lt;/a&gt;: Reading the local timeline reveals gems like this.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Selfcare.Tech

        https://blog.martin-haehnel.de/2025/09/26/selfcare-tech/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1399 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/25/dailydogo1399/" />
      <updated>2025-09-25T19:35:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/25/dailydogo1399/</id>
      <content type="html">&lt;p&gt;DailyDogo 1399 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and watching somewhat shy into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b90ed02e5a9ea23b6c73c7a124ebfdb0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1399 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1398 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/24/dailydogo1398/" />
      <updated>2025-09-24T19:05:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/24/dailydogo1398/</id>
      <content type="html">&lt;p&gt;DailyDogo 1398 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan waiting patiently for the photographer to open the door. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cfd086c2d6a1ebe2ffa01a9b11a0594a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1398 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1397 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/23/dailydogo1397/" />
      <updated>2025-09-23T19:05:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/23/dailydogo1397/</id>
      <content type="html">&lt;p&gt;DailyDogo 1397 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan, lying in bed, on her side, with eyes open and her tongue out, being goofy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e3490ebccb0ff47a9df1dfdab4cedb72.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1397 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1396 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/22/dailydogo1396/" />
      <updated>2025-09-22T19:45:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/22/dailydogo1396/</id>
      <content type="html">&lt;p&gt;DailyDogo 1396 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in her dog bed. She looks like she&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/32602dc5d026a66067d240ee23d6cd8f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1396 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1395 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/21/dailydogo1395/" />
      <updated>2025-09-21T19:47:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/21/dailydogo1395/</id>
      <content type="html">&lt;p&gt;DailyDogo 1395 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under - and by that I mean wedged under - a couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/896160167778f9ad42c96db96280fda9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1395 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1394 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/20/dailydogo1394/" />
      <updated>2025-09-20T18:42:17Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/20/dailydogo1394/</id>
      <content type="html">&lt;p&gt;DailyDogo 1394 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan jumping up towards a toy thrown at her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/222f2a7a6eda3b962892f2a195f9e96a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1394 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Vacation Results 2025



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/" />
      <updated>2025-09-20T11:46:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/</id>
      <content type="html">&lt;p&gt;I wrote a slightly weird post when I was traveling: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/&quot;&gt;Observations While Traveling&lt;/a&gt;. It was an attempt to think a little bit more interestingly about my internal world. Reading it now, it seems to me that I was still on my way mentally to &amp;quot;vocation mode&amp;quot;, as can be seen by the first point I made:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;There is a side to my personality that is extremely grating, I am just very rarely informed of it and can forget it exists.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am not sure if I would sign &amp;quot;my personality [...] is extremely grating&amp;quot;. That was clearly written while under stress of traveling. I am not great at traveling (although I&#39;m not that bad either, I just don&#39;t enjoy it as much). I mean, listen to this: We had to get a car train from Oulu to Helsinki and then a ferry from Helsinki to Travemünde, make it to my Mom in Husum. Continue to Lübeck and then make it in time to Berlin to meet my Dad, my Brother and my Grandparents. Hope that the 90th birthday of my grandpa goes well (as well as other interactions with family members throughout the whole vacation), decide on where to go after Berlin, before going back from wherever we end up to (Wernigerode in the Harz Mountains btw.) to Travemünde and make it back in time to the ferry and then to Oulu. All of this was happening over the two weeks or so we were gone. It was stressful and exhausting. My Oura Ring (which I mainly use for &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/17/oura-renewal/&quot;&gt;sleep tracking&lt;/a&gt;), showed elevated stress and bad sleep for basically all of my vacation days.&lt;/p&gt;
&lt;p&gt;At the same time I enjoyed my time immensely: Most of the vacation was a success and was spent doing interesting and enjoyable things (as the daily dog pics hopefully document). When we arrived back home yesterday, I was happy to be back, but this point here made me wince re-reading it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;My most toxic trait is that on a deep level I find humans and their passions, emotions and hang-ups deeply suspect.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I mean... it&#39;s not untrue, strictly speaking, but calling it &amp;quot;my most toxic trait&amp;quot; freights it with more negative connotation than is warranted: I actually like that I am a curious observer and explorer that can at times conjure an orthogonal take.&lt;/p&gt;
&lt;p&gt;I am not going to comment on all of the points in that post, but I would frame most of these slightly differently and in general more positively.&lt;/p&gt;
&lt;p&gt;I guess I would now say that this vacation in particular included a lot of logistics, coordination and worries about interpersonal relationship stuff that made me feel pretty overwhelmed. In that sense it felt good to be able to have an outlet for slightly weird and/or negative thoughts without having to worry too much about what people think.&lt;/p&gt;
&lt;p&gt;I needed this emotional outlet, a place in which I could be somewhat more openly authentic (with all my contradictoriness and less agreeable sides) even before the vacation and I see my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/&quot;&gt;Im Ascheregen&lt;/a&gt; post - in which I decided that I wanted to be more independent again - in line with the travel observations post. I left OMG.lol (a great community with great people!) because the entanglements with the community - shallow as they were - started to resemble my real-life relationships all too much - which is not what I wanted at all from this.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; I also somehow managed to cause incidental harm, which sucks. And to be completely honest: I didn&#39;t want to explain myself again and again that I indeed didn&#39;t harbor any bigger negative thoughts against anyone in particular, so leaving was the simplest way. My real life just needed a counter weight in which I could be a little bit more emotional, a little bit louder and even a little bit less sympathetic (weird that this comes from me, who gave another person a somewhat hard time about &lt;a href=&quot;https://blog.martin-haehnel.de/#WeblogPoMo2024%20-%20Thoughts%20on%20#WeblogPoMo2024%20-%20Thoughts%20on&quot; Takes=&quot;&quot; spread=&quot;&quot; like=&quot;&quot; wildfire&quot;&quot;=&quot;&quot;&gt;something similar&lt;/a&gt; (although distinct) a while ago...).&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I think I came to that realization somewhat in a backwards way: By relating to the community as if these were real-life relationships &lt;em&gt;myself&lt;/em&gt;, hence causing the whole hubub for myself. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Vacation Results 2025

        https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1393 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/19/dailydogo1393/" />
      <updated>2025-09-19T20:14:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/19/dailydogo1393/</id>
      <content type="html">&lt;p&gt;DailyDogo 1393 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping peacefully next to a couch. There is a leg of a couch table visible and a yellow towel.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a7150325ff62a2090f29b77f6e272921.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1393 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1392 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/18/dailydogo1392/" />
      <updated>2025-09-18T20:14:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/18/dailydogo1392/</id>
      <content type="html">&lt;p&gt;DailyDogo 1392 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping next to a bed, some clothes and other luggage.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c3a3a220a4e7ba981c20816d40d4c5ad.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1392 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1391 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/17/dailydogo1391/" />
      <updated>2025-09-17T20:36:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/17/dailydogo1391/</id>
      <content type="html">&lt;p&gt;DailyDogo 1391 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sniffing the grass in front of an interesting looking coffee place (The Harzer Baumkuchen Café).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/18217917a3abe945cf74b1ef5f351b71.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1391 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1390 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/16/dailydogo1390/" />
      <updated>2025-09-16T20:36:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/16/dailydogo1390/</id>
      <content type="html">&lt;p&gt;DailyDogo 1390 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor of an observation platform, with mountainous terrain in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/81f982ae0dcdc29d7c2f9ae41a573a06.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1390 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1389 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/15/dailydogo1389/" />
      <updated>2025-09-15T20:36:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/15/dailydogo1389/</id>
      <content type="html">&lt;p&gt;DailyDogo 1389 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing in front of a few steps with a small artificial water feature in the middle, with some blue LEDs. A timber framed building (German Fachwerkhaus) is visible right of the stairs.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/67b6e4fac0859feca4c0c4100079e9ac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1389 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1388 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/14/dailydogo1388/" />
      <updated>2025-09-14T21:07:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/14/dailydogo1388/</id>
      <content type="html">&lt;p&gt;DailyDogo 1388 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through a sun flooded forest.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4950f78c95bc5142b0cd861c69dbadb9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1388 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1387 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/13/dailydogo1387/" />
      <updated>2025-09-13T20:08:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/13/dailydogo1387/</id>
      <content type="html">&lt;p&gt;DailyDogo 1387 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on stones in front of a bunch of garden plants.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a407869c74655d1b1b136e1d25baf57a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1387 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1386 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/12/dailydogo1386/" />
      <updated>2025-09-12T21:07:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/12/dailydogo1386/</id>
      <content type="html">&lt;p&gt;DailyDogo 1386 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a hotel bed surrounded by luggage.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6fc5dc2e80a395d0cd8ad73b337d6060.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1386 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1385 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/11/dailydogo1385/" />
      <updated>2025-09-11T21:07:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/11/dailydogo1385/</id>
      <content type="html">&lt;p&gt;DailyDogo 1385 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping on her back behind some curtains.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/17bfdd73cac7e59b44b308676b122ad1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1385 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1384🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/10/dailydogo1384/" />
      <updated>2025-09-10T20:13:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/10/dailydogo1384/</id>
      <content type="html">&lt;p&gt;DailyDogo 1384 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a terasse in front of a big hortensia bush.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e609d6d78b1bc4f5b0a46292fb5902b6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1384 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1383 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/09/dailydogo1383/" />
      <updated>2025-09-09T20:13:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/09/dailydogo1383/</id>
      <content type="html">&lt;p&gt;DailyDogo 1383 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on a wide sandy beach, smiling excitedly into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bca38bdab4474bdea3d2432e07f648fe.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1383 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Observations While Traveling



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/" />
      <updated>2025-09-08T20:49:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-09-14 Added three points, fixed a lot of typos.&lt;/li&gt;
&lt;li&gt;2025-09-20 I wrote a follow-up post in which I reflect why the tone of these observations is so negative: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/20/vacation-results-2025/&quot;&gt;Vacation Results 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;ul&gt;
&lt;li&gt;There is a side to my personality that is extremely grating, I am just very rarely informed of it and can forget it exists.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Another thing that I often forget: How much my perspective on life has been shaped (warped?) by philosophy, sociology and systems thinking. It makes me alien in some ways. Basic assumptions and explanations (and what I find interesting) for why things are the way they are, are quite often different from common sense. Or are only &amp;quot;joining common sense&amp;quot; by mobilizing a whole shadow army of extra explanations and assumptions in my head. This mostly works at certain speeds in controlled environments, but can lead to misunderstandings and conflicts when I have to act quickly, as the facade disintegrates.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;My most toxic trait is that on a deep level I find humans and their passions, emotions and hang-ups deeply suspect. I find their longing for entanglement not really endearing. And at the same time, I long for deep connectedness and belonging. In the end, I want to be loved without the leg work and negotiations on my part. I find this very ugly about me in some ways, and just profanely &amp;quot;modern&amp;quot; in another.&lt;/li&gt;
&lt;li&gt;Traveling, understood as an activity of going somewhere without responsibilities, can be fun.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Traveling is a form of betting. And you can get addicted to it.&lt;/li&gt;
&lt;li&gt;Non-solo traveling is best done as a form of service: A good traveling companion seems to be part sin-eater and part morale officer.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Most traveling has been enjoyable in part because it was challenging: It makes me more aware of who I am and what I value. It also makes me aware of how little I know about me and others and the world at large. And how all of that is good and bad, depending on the context.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;I need to really &amp;quot;get out&amp;quot; at least once every year.&lt;/li&gt;
&lt;li&gt;In a relationship: Traveling is a powerful form of myth making: And myth making is a powerful form of constructing a positive future.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;My identity is in extreme flux while traveling, as are the relationships through which I construct my identity. Just as facts have to be stabilized by mobilizing the right actors and this stabilization being a somewhat precarious process that involves more than just the actor (taken as the subject) constructing a given fact (taken as the object). While traveling, I have to deal with the fact that fewer actors are being mobilized by me.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt; Instead, I&#39;m the one being mobilized. And that means that I can&#39;t guarantee the same identity to my loved ones or myself: I tend to be more volatile and less predictable, even to myself.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;NEW (2025-09-14): The idea of being free to do (or not do) things and the idea of meeting family and/or friends are at odds with each other.&lt;/li&gt;
&lt;li&gt;NEW (2025-09-14): Revisiting places you know necessarily reminds you of the limited time you have. This makes me grateful and makes me realize that I am an expression of the actor-network that makes me &lt;em&gt;me&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;NEW (2025-09-14): There is a moment where the vacation&#39;s meaning &amp;quot;flips&amp;quot; and it becomes about anticipating coming back into my own life and change it or fix it in some way, instead of leaving.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;My assumption is: I am rarely informed, because I am also extremely self-observant and self-critical ...and wordy if this part of my personality gets triggered. Ain&#39;t nobody got time for that. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I like to think that I offer a &amp;quot;compatibility layer&amp;quot; around all this more complicated aspect to my worldview. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have yet to actually experience a whole vacation or at least a substantial portion of it that fits this description, if I&#39;m honest. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Another way to put this: Traveling is easier if you have the right kind of bad memory. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The important part, in other words, is how it makes me aware of the context. &lt;a href=&quot;https://fs.blog/david-foster-wallace-this-is-water/&quot;&gt;What the hell is water&lt;/a&gt; and all that. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;See &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html&quot;&gt;An Updated Manifest Destiny - Or How Myth Making Might Intentionally Change The World After All &amp;lpar;Comment on Andrew Dana Hudson&amp;apos;s &amp;quot;Space is Dead&amp;period; Why Do We Keep Writing About It&amp;quest;&amp;quot;&amp;rpar;&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have a hard time gauging if this means more or less actors need to pass through me while I&#39;m on vacation, I suspect it&#39;s more. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In some ways the opposite is true: I am reduced to my &amp;quot;traveler identity&amp;quot;, as opposed to my &amp;quot;auto-anthropological identity&amp;quot;, which is  much less about me constructing the me that I&#39;m most interested in and more about me constructing a simplified version of me that conforms to a whole bunch of expectations - and also failing frequently to do so as the pressure rises and getting increasingly fed up attempting it as the days go on. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Observations While Traveling

        https://blog.martin-haehnel.de/2025/09/08/observations-while-traveling/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1382 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/08/dailydogo1382/" />
      <updated>2025-09-08T19:41:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/08/dailydogo1382/</id>
      <content type="html">&lt;p&gt;DailyDogo 1382 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through a trail on a salt marsh towards a house on a little hill. Far in the background windmills are visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/77be9e96c5ea3b2a79343c1c677d2501.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1382 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1381 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/07/dailydogo1381/" />
      <updated>2025-09-07T18:14:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/07/dailydogo1381/</id>
      <content type="html">&lt;p&gt;DailyDogo 1381 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on a muddy seashore (actually it&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9db62d0936f4e7e6efe2abfb945fd2d4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1381 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1380 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/06/dailydogo1380/" />
      <updated>2025-09-06T18:14:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/06/dailydogo1380/</id>
      <content type="html">&lt;p&gt;DailyDogo 1380 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking over a carpet saying &amp;amp;quot;welcome on board&amp;amp;quot; and showing an image of a compass.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1fb38894b2a62187b5e7b9b862402a92.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1380 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1379 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/05/dailydogo1379/" />
      <updated>2025-09-05T18:14:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/05/dailydogo1379/</id>
      <content type="html">&lt;p&gt;DailyDogo 1379 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under bed side table. On the table a couple of bottles and some candy amongst other things. Over the table, a window is visible and through that a harbor.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1a6e28bba02a3302b3cd841097df81c5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1379 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1378 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/04/dailydogo1378/" />
      <updated>2025-09-04T18:14:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/04/dailydogo1378/</id>
      <content type="html">&lt;p&gt;DailyDogo 1378
🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under a bunk bed in a sleeper car of a train.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1d0e724ac60e3ac300db4609dddb33d9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1378 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1377 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/03/dailydogo1377/" />
      <updated>2025-09-03T18:14:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/03/dailydogo1377/</id>
      <content type="html">&lt;p&gt;DailyDogo 1377 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a carpet and watching directly into the camera. She is looking super cute.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ea5db7c3f6ef696818047e258dc8287.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1377 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1376 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/02/dailydogo1376/" />
      <updated>2025-09-02T19:07:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/02/dailydogo1376/</id>
      <content type="html">&lt;p&gt;DailyDogo 1376 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan hiding in between plants on a balcony.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3c532fcbb90867f0bdc8a6353b484b4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1376 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;AI and LLMs&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/" />
      <updated>2025-09-01T18:58:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-09-02 - added a linkt to my review of the book The AI Con&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I have written about AI and LLMs and their relative evilness and what it means to be a critical user of them.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;The Way We Use LLMs Makes All The Difference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/&quot;&gt;A Personal Note On My Interest In LLMs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/&quot;&gt;Mini-Review&amp;colon; The AI Con&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;Those Recent Puzzmo Articles about Claude Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/21/ai-as-a-solved-sudoku-puzzle/&quot;&gt;AI As A Solved Sudoku Puzzle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;AI and LLMs&quot;

        https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1375 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/01/dailydogo1375/" />
      <updated>2025-09-01T18:21:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/01/dailydogo1375/</id>
      <content type="html">&lt;p&gt;DailyDogo 1375 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in her dog bed and watching happily at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b2576def4d8a9777047da983ed214cf6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1375 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          See What&#39;s Changed Through New Recently Changed &quot;Feature(s)&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/" />
      <updated>2025-09-01T07:18:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;As with &amp;quot;blikis&amp;quot; before(?), digital gardens and blogs are not necessarily opposites. I think having chronologically ordered posts AND evergreen and ever evolving notes at the same time can make sense. It is a very attractive way of publishing online, I think. Why not just have both? You could even have two feeds: One for the recently published posts and another for recently updated notes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I wrote this when talking about &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/digital-garden.html&quot;&gt;Digital Gardens&lt;/a&gt; way back then, but this blog actually never head any recently updated page or a feed or showed the updated date and time anywhere. Well, now it does - or is in the process of getting these features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/updated/&quot;&gt;Recently Updated&lt;/a&gt; - Shows the last 10 pages that have been updated recently&lt;/li&gt;
&lt;li&gt;Blog posts now show published/updated dates in post lists and posts
&lt;ul&gt;
&lt;li&gt;Post lists: &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing the new display of the updated date in post lists.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/421e9d0ac2a58834cd75cda6329cc464.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/li&gt;
&lt;li&gt;Posts: &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing an example of the new blog post metadata box. The box is a table with Published, Updated and Tags rows for the post &amp;amp;quot;This Blog Is Now A Monorepo&amp;amp;quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5be1876f867da1cf28c945a6a84bcfa1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I really like how the Apple blogger/developer &lt;a href=&quot;https://mjtsai.com/blog/&quot;&gt;Michael Tsai&lt;/a&gt; is handling posting about updates on social media: He publishes one post a day with links to all posts that have been updated today (&lt;a href=&quot;https://mastodon.social/@mjtsai/115096686847998261&quot;&gt;example&lt;/a&gt;). I&#39;m working on something similar at the moment.&lt;/li&gt;
&lt;li&gt;Also not yet done, but on the list: A recently changed feed.&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        See What&#39;s Changed Through New Recently Changed &quot;Feature(s)&quot;

        https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1374 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/31/dailydogo1374/" />
      <updated>2025-08-31T17:32:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/31/dailydogo1374/</id>
      <content type="html">&lt;p&gt;DailyDogo 1374 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a dog bed on the sun flooded balcony, looking back at the camera. There are two rectangular pots of plants she&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3bfed9385176a0ea9f9c0466dd7ae3bd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1374 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1373 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/30/dailydogo1373/" />
      <updated>2025-08-30T18:05:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/30/dailydogo1373/</id>
      <content type="html">&lt;p&gt;DailyDogo 1373 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting in the middle of the living room, in front of a scientific paper that is lying on the ground, making it almost look like she was reading it before the picture was taken.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/baaca6713bd579976772d7da35d470d2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1373 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          This Blog Is Now A Monorepo



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/" />
      <updated>2025-08-29T20:41:36Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-08-31 - Updated the package.json&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;This blog consists of two parts: A static blog (powered by Eleventy) and a small API that powers the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/&quot;&gt;favs&lt;/a&gt; and the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/&quot;&gt;guestbook&lt;/a&gt;. They always lived in two different repositories, which made developing and testing things together a little awkward, but not anymore! Everything is now united in one repository.&lt;/p&gt;
&lt;p&gt;This enables me also to move things (e.g. into a more traditional vps kind-of situation) &lt;em&gt;much&lt;/em&gt; more easily, if I ever chose to do so.&lt;/p&gt;
&lt;p&gt;Some quick notes on how this works in the context of the Cloudflare Dev Platform:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;both the blog and the api now live - more or less as they were - as subfolders under &lt;code&gt;apps&lt;/code&gt; (e.g. &lt;code&gt;apps/blog&lt;/code&gt; and &lt;code&gt;apps/blog-api&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;the Cloudflare pages project that builds this blog on push was reconfigured&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:
&lt;ul&gt;
&lt;li&gt;Root directory: &lt;code&gt;apps/blog&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Build watch paths
&lt;ul&gt;
&lt;li&gt;Include paths: &lt;code&gt;apps/blog/*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Rest as before/default
&lt;ul&gt;
&lt;li&gt;only noteworthy configurations
&lt;ul&gt;
&lt;li&gt;an R2 Bucket was bound to serve images&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/&quot;&gt;build cache is activated&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I use pnpm instead of npm to build this site, so &lt;code&gt;NODE_VERSION&lt;/code&gt; and &lt;code&gt;PNPM_VERSION&lt;/code&gt; env vars are set and the build command is &lt;code&gt;pnpx @11ty/eleventy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;since the blog-api workers project was always deployed manually using wrangler, I will just have to do this now using the new repo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To help facilitate building/developing/deploying from this new repo, I have the following package.json in the repo root:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blog-monorepo&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;private&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;version&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;0.1.0&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;module&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;packageManager&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm@10.15.0+sha512.486ebc259d3e999a4e8691ce03b5cac4a71cbeca39372a9b762cb500cfdf0873e2cb16abe3d951b1ee2cf012503f027b98b6584e4df22524e0c7450d9ec7aa7b&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;workspaces&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;apps/*&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpx concurrently -k &#92;&quot;pnpm --dir apps/blog start&#92;&quot; &#92;&quot;pnpm --dir apps/blog wrangler:proxy&#92;&quot; &#92;&quot;pnpm --dir apps/cloudflare-blog-api dev&#92;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api dev&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;dev:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog start&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build &amp;amp;&amp;amp; pnpm --dir apps/cloudflare-blog-api check&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/blog build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;build:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api check&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;deploy:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api deploy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;types:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pnpm --dir apps/cloudflare-blog-api types&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --check ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;format:write&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --write ./.prettierignore&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;prepare&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api apps/blog&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:fix&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api apps/blog --fix&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:api&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/cloudflare-blog-api&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;lint:blog&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint apps/blog&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;&quot;devDependencies&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;@eslint/js&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^9.22.0&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^9.22.0&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;eslint-config-prettier&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^10.1.1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;globals&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^16.0.0&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^9.1.7&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;prettier&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;3.5.3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token property&quot;&gt;&quot;typescript-eslint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;^8.26.0&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Developing things for my blog - including the interactive parts - is now just a question of doing &lt;code&gt;pnpm dev&lt;/code&gt; in the repo root. Deployment of the blog happens on push - as before - and deploying the API is a simple &lt;code&gt;pnpm deploy:api&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;P.S.: Moving away from Cloudflare will mean to not rely anymore on wrangler and its local development features (as well as cloudflare&#39;s dev platform with its KV store, database and object storage as regards to actually deploying this thing, of course). Looking at the tools I&#39;m comfortable with, this would probably mean moving to a docker based workflow. But I&#39;ll cross that bridge when I come to it.&lt;/p&gt;
&lt;p&gt;P.P.S.: Calling this a monorepo feels almost like stolen monorepo valor, since it&#39;s only two projects that don&#39;t even share any dependencies. I hope big monorepo will understand.&lt;/p&gt;
&lt;p&gt;P.P.P.S.: Cloudflare offers more complex monorepo features for &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/monorepos/&quot;&gt;pages&lt;/a&gt; and &lt;a href=&quot;https://developers.cloudflare.com/workers/ci-cd/builds/advanced-setups/#monorepos&quot;&gt;workers&lt;/a&gt; projects.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;actually, I created a new one, because the monorepo is technically a new repo &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        This Blog Is Now A Monorepo

        https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1372 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/29/dailydogo1372/" />
      <updated>2025-08-29T19:26:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/29/dailydogo1372/</id>
      <content type="html">&lt;p&gt;DailyDogo 1372 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan, photographed from the outside, through an opened balcony door that is partially blocked by a curtain. She has an old sock in her mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ca55ecc5070c20fd3cd19f389443b883.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1372 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1371 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/28/dailydogo1371/" />
      <updated>2025-08-28T19:37:57Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/28/dailydogo1371/</id>
      <content type="html">&lt;p&gt;DailyDogo 1371 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and a bearded man (me!) are walking/running down a hill in what looks like a fenced-in yard (it&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7a6d96c6a1737555ab789f59987c8634.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1371 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Im Ascheregen



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/" />
      <updated>2025-08-28T19:28:17Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-08-29 - added a &amp;quot;What does this mean&amp;quot; section&lt;/li&gt;
&lt;li&gt;2025-09-26 - added that I have successfully &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/&quot;&gt;moved&lt;/a&gt; mastodon servers&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A photo of a cloudy sky over the coast near Oulu. In the middle of the photo, the sun is breaking through the otherwise grey-whitish clouds turning the sky orange-yellow. A ray of light seems to focus on one of the little islands scattered on the horizon.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3b2238e55ab11fa6ed3830ce1cc8fae9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I guess it&#39;s time to move on.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Song of the moment - of some of the most important &amp;quot;moving on&amp;quot; moments of my life, including this one: https://music.youtube.com/watch?v=KupQNkpKoV0&amp;amp;si=zEj8A2xgrXpwjt6O&lt;/p&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;What does this even mean?&lt;/p&gt;
&lt;p&gt;This post is an announcement. It announces that I am removing myself from the community of OMG.lol, as I was perceived as a hostile element and I don&#39;t see any other way out of this mess that is congruent with my values. I don&#39;t want to cause harm (and I feel like I have) but I also don&#39;t want to feel like everything I say (especially negative and critical things, which might want to be said, too, at times...) might be considered part of a hostile pattern towards someone (but I feel like it exists, if independently from my own intentions).&lt;/p&gt;
&lt;p&gt;It&#39;ll be somewhat of a slow burn. Effective immediately, I&#39;ll stop participating in the chat community of OMG.lol. Soon, I&#39;ll build my own landing page for https://martin-haehnel.de/. The biggest worry is where I move my Mastodon address to (social.lol is part of OMG.lol&#39;s offering), but since I still have more than 10 years of paid service with OMG.lol, I&#39;ll take a look around what else is out there and move as soon as I have found a new haven. EDIT: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/26/matti-has-moved/&quot;&gt;The move has now happened&amp;period;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The little semi-private productivity and accountability forum didyoudoit is also impacted, as it originated from that community. I am sad to say: I see no way to keep the lights on over there. I had &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/13/didyoudoit-going-forward/&quot;&gt;originally said didyoudoit would stick around until the week of 17 March 2026&lt;/a&gt;, but I do not think this is the right thing to do anymore. It had become somewhat of an empty bar in recent weeks, anyway. So this is what is going to happen: The forum will stay up until said date (so you have ample time to copy or delete any of your old posts), but I am not going to post new threads anymore. After 2026-03-22 the forum and all its data will be deleted.&lt;/p&gt;
&lt;p&gt;Just to make this abundantly clear: OMG.lol&#39;s community is great and the values of its members as well as its &lt;a href=&quot;https://home.omg.lol/staff&quot;&gt;staff&lt;/a&gt; are commendable. This is not about their values being wrong, if anything their integrity and humanity is an inspiration to me. This is about perceptions and limitations of communication through the internet and the way in which us humans tend to see patterns in behavior and seem to even be able to validate them. If there are no behaviors (or at least no behaviors within a certain space) to make patterns out of, the incidental harm should be mostly nullified.&lt;/p&gt;
&lt;/div&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I &lt;em&gt;did&lt;/em&gt; enjoy my stay, but I don&#39;t want to overstay my welcome. It seems like &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html&quot;&gt;Loving from a distance&lt;/a&gt; extends to the digital realm also. I am not responsible for other people&#39;s perceptions of me. And yet I don&#39;t want to cause harm. If my personality leads to situations in which people feel like I am the hostile element, then it&#39;s time to remove myself from the situation. Warranted or not: That&#39;s not what I&#39;m about. Farewell OMG. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Im Ascheregen

        https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1370 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/27/dailydogo1370/" />
      <updated>2025-08-27T19:20:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/27/dailydogo1370/</id>
      <content type="html">&lt;p&gt;DailyDogo 1370 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a wooden bench and looking towards the camera. There is a fisher&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b6e4277c4157a0563f968874747ff47c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1370 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1369 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/26/dailydogo1369/" />
      <updated>2025-08-26T19:05:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/26/dailydogo1369/</id>
      <content type="html">&lt;p&gt;DailyDogo 1369 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor, photographed from above and behind. The sun makes a strong shadow. Napu is watching the photographer out of the corner of her eye.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/34d30e3fb8d04283742fba569a737f8a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1369 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1368 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/25/dailydogo1368/" />
      <updated>2025-08-25T18:50:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/25/dailydogo1368/</id>
      <content type="html">&lt;p&gt;DailyDogo 1368 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching past the camera, with her tounge slightly showing. There is a round dog shew resting on one of her paws.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9e6db7d36be3cd6ea0be507c916d2f56.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1368 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1367 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/24/dailydogo1367/" />
      <updated>2025-08-24T17:25:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/24/dailydogo1367/</id>
      <content type="html">&lt;p&gt;DailyDogo 1367 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back next to the balcony door. She is sleeping and enjoying the sun on her belly.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/39d707f89429ad1b9f0416f24a443ef2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1367 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1366 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/23/dailydogo1366/" />
      <updated>2025-08-23T18:01:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/23/dailydogo1366/</id>
      <content type="html">&lt;p&gt;DailyDogo 1366 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing next to the apartment door. She is already on a leash and can&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/3fa4f4feb004659e365b4ac28909ee0d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1366 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1365 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/22/dailydogo1365/" />
      <updated>2025-08-22T18:21:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/22/dailydogo1365/</id>
      <content type="html">&lt;p&gt;DailyDogo 1365 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching over her shoulder back towards something outside the frame. In the background is a canal, some buildings on the other side of the canal and some urban greenery.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8ab2860d796971b3352c4cbd3c85ac80.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1365 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1364 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/21/dailydogo1364/" />
      <updated>2025-08-21T19:56:51Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/21/dailydogo1364/</id>
      <content type="html">&lt;p&gt;DailyDogo 1364 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan and a beared man (me!) photographed from below. The dog is looking up and the man is looking down. There are some clouds and a blue sky in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/505269fbcbdc232d8fe8dfe91baa14d5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1364 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good Apps - FocusFlights



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/21/good-apps-focusflights/" />
      <updated>2025-08-21T15:55:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/21/good-apps-focusflights/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Over time, I tried many methods and apps, with focus music, timers, ... but eventually, the outcome was still the same. My mind drifted, and I lost my focus.&lt;/p&gt;
&lt;p&gt;Until I recently found Focus Flight.
It wants to help you focus by pretending you take a flight.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://gobino.be/finding-focus-with-focus-flight/&quot;&gt;Gobino/Steven&lt;/a&gt; mentioned &lt;a href=&quot;https://focus.flights&quot;&gt;FocusFlights&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/21/good-apps-focusflights/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; on the &lt;a href=&quot;https://omg.lol&quot;&gt;OMG.lol&lt;/a&gt; chat to me once and I love it. It&#39;s exactly what he says: You book a pretend flight to a destination near or far and your brain goes in to this weird mode where finding focus is easier. A weird app that weirdly enough... somehow works.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;That site for some reason only links to the app store page or the app itself. The only content it seems to be serving is their &lt;a href=&quot;https://focus.flights/privacy/&quot;&gt;privacy policy&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/21/good-apps-focusflights/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Good Apps - FocusFlights

        https://blog.martin-haehnel.de/2025/08/21/good-apps-focusflights/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1363 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/20/dailydogo1363/" />
      <updated>2025-08-20T17:58:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/20/dailydogo1363/</id>
      <content type="html">&lt;p&gt;DailyDogo 1363 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting quite far away from the leash holder (and photographer), next to canal, enjoying the sun.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/73dee1f4d937f7934b0342309cd1e2b2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1363 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1362 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/19/dailydogo1362/" />
      <updated>2025-08-19T16:40:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/19/dailydogo1362/</id>
      <content type="html">&lt;p&gt;DailyDogo 1362 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan, sitting and photographed slightly from below. She is watching the photographer, seemingly asking &amp;amp;quot;when do I get food?&amp;amp;quot;.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cd7606f45dc9afce86185e89c9febd75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1362 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          HashtagNoChat



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/19/hashtagnochat-hashtagyesdon/" />
      <updated>2025-08-19T16:31:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/19/hashtagnochat-hashtagyesdon/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-08-19 - Another edge case with permalinks: Using a comma in the title (like I wanted to do here; the original Title was going to be &amp;quot;HashtagNoChat, HashtagYesDon&amp;quot; only keeps the first part when Eleventy builds the site)&lt;/li&gt;
&lt;li&gt;2025-08-20 - The chat is open again! That might mean less posts on Mastodon. We&#39;ll see.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;For reasons I am little bit hesitant to bring up in public - since the OMG.lol Discord (and by extension the whole bridged OMG.lol chat network) is somewhat of a protected space - I find myself with a little more bandwidth to post/interact on mastodon in the next few days. So, just in case: If we hung out on the OMG.lol chat or whatever: &lt;a href=&quot;https://social.lol/@matti&quot;&gt;See you on the &#39;don instead.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        HashtagNoChat

        https://blog.martin-haehnel.de/2025/08/19/hashtagnochat-hashtagyesdon/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1361 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/18/dailydogo1361/" />
      <updated>2025-08-18T18:56:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/18/dailydogo1361/</id>
      <content type="html">&lt;p&gt;DailyDogo 1361 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan, partially hidden behind a plate of festive looking dog food (Napu turned 4 today), served on a real plate. Her eyes are wide open and she looks excited.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/787f148b00d6cd73385187b16de07d75.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1361 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1360 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/17/dailydogo1360/" />
      <updated>2025-08-17T19:34:12Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/17/dailydogo1360/</id>
      <content type="html">&lt;p&gt;DailyDogo 1360 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking up from under a couch table. There is a yarn ball next to her and she is smiling somewhat develish.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/da618f614ff60890b8ed5d1f943b9fbf.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1360 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1359 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/16/dailydogo1359/" />
      <updated>2025-08-16T18:55:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/16/dailydogo1359/</id>
      <content type="html">&lt;p&gt;DailyDogo 1359 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan smiling into camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/68c5eb66a9eca9f63e1df2f1c9ab115f.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1359 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1358 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/15/dailydogo1358/" />
      <updated>2025-08-15T20:06:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/15/dailydogo1358/</id>
      <content type="html">&lt;p&gt;DailyDogo 1358 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a guest bed on her side watching into the camera. Her head is very close to the wall, making her look like she has to duck to lay like this.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dfe900bb8c949f0ac0ab0feb06d39f0e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1358 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1357 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/14/dailydogo1357/" />
      <updated>2025-08-14T19:47:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/14/dailydogo1357/</id>
      <content type="html">&lt;p&gt;DailyDogo 1357 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking playfully into the camera while lying on a guest bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a55c602af0cea1b6ac89a7b2764a7a4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1357 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Those Recent Puzzmo Articles about Claude Code



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/" />
      <updated>2025-08-14T07:41:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2026-01-02 - Fixed a typo&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Zack Gage is a person that has made really cool puzzle games that I like a lot. Some favorites include Flipflop Solitaire and Good Sudoku. Anyway, he and some other people have started a puzzle game website called Puzzmo. &lt;a href=&quot;https://blog.puzzmo.com&quot;&gt;Puzzmo has a blog.&lt;/a&gt; And in it, they describe all kinds of fascinating technical stuff, like game and UI design questions as well as programming topics. One of them happens to be &amp;quot;coding with AI&amp;quot;.&lt;/p&gt;
&lt;p&gt;Somewhat recently Orta Therox, their tech lead (I think), has published two articles about using &lt;a href=&quot;https://www.anthropic.com/claude-code&quot;&gt;Claude Code&lt;/a&gt; to work on Puzzmo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.puzzmo.com/posts/2025/06/07/orta-on-claude/&quot;&gt;On Coding with Claude&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.puzzmo.com/posts/2025/07/30/six-weeks-of-claude-code/&quot;&gt;6 Weeks of Claude Code&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I want to comment on what I found interesting about those two articles, because I think they are fascinating artifacts of this point in time. But before we start a short™ statement on &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;my perspective&lt;/a&gt;:&lt;/p&gt;
&lt;h3 id=&quot;my-perspective-on-llms&quot;&gt;My Perspective On LLMs&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;To get back to the question whether LLMs are a positive for society, the answer depends entirely on what we are using LLMs for. Right now, it seems to me that LLMs are mostly helpful in a programming context (and maybe a handful of other use cases, although I have no first-hand experience of that) and they are regrettably useful - or at least &lt;em&gt;used&lt;/em&gt; - to try to scam people, make workers lose their jobs, threaten the environment and drown out the beauty and uniqueness of everyone&#39;s voice.&lt;/p&gt;
&lt;p&gt;Depending on our use and what we expect others to use it for, it can be at least a neutral thing. Or a somewhat-negative-but-because-of-the-upside-accepted thing. Like a small, reasonable car.&lt;/p&gt;
&lt;p&gt;This twitter post made the rounds recently:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;You know what the biggest problem with pushing all-things-AI is? Wrong direction.
I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.&amp;quot;
— &lt;a href=&quot;https://x.com/AuthorJMac/status/1773679197631701238&quot;&gt;x.com/AuthorJMa...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I think it encapsulates beautifully my sentiment: Use AI for the right things and there isn&#39;t really a big problem with the technology.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&#39;s important to note that my article tried to figure out a framework that - all else being equal - has a sanity based approach to judging the use of a technology/product that exists, right now. Given that me, the individual, can&#39;t really change how the current crop of &amp;quot;AI&amp;quot; was made, I can at least find a way to interact with them that makes sense and isn&#39;t &amp;quot;purity based&amp;quot;.&lt;/p&gt;
&lt;p&gt;I think this &amp;quot;anti-purity framework of judgment approach&amp;quot; is still a good idea. Normal people - including you - will use LLMs, sometimes you&#39;ll overstep and use them for frivolous things. Within reason, that&#39;s fine.&lt;/p&gt;
&lt;p&gt;What &lt;a href=&quot;https://blog.puzzmo.com/posts/2025/06/07/orta-on-claude/&quot;&gt;the first of the two Puzzmo articles&lt;/a&gt; made clear to me (again) however, by mentioning &lt;a href=&quot;https://en.wikipedia.org/wiki/Overton_window&quot;&gt;the Overton window&lt;/a&gt;, is that things are, of course, in flux. Society as a whole will shift, shrink and expand what is acceptable behavior. It will do that in response to all kinds of factors, with technology being an important one among them.&lt;/p&gt;
&lt;p&gt;And the technology/product &amp;quot;AI&amp;quot; - &lt;a href=&quot;https://garymarcus.substack.com/p/gpt-5-overdue-overhyped-and-underwhelming&quot;&gt;flawed&lt;/a&gt;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; as it may be - will of course get better. Maybe this &amp;quot;better&amp;quot; here doesn&#39;t denote a certain march towards AGI - it certainly doesn&#39;t look like it, but its UIs, reliability, user experience and other things definitely have gotten better over time and will continue to get better. All of this means that LLMs can be used in contexts they weren&#39;t applicable before and LLMs can be used more productively in contexts where their usage made sense already. More usage equals more influence on society (and certain industries, like programming), naturally.&lt;/p&gt;
&lt;p&gt;Back to my old article, though:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For the societal viewpoint, on the other hand, it&#39;s important to keep in mind that society is not a person, and it doesn&#39;t make decisions. It doesn&#39;t have intentions, and you can&#39;t actually interact with it directly. So making demands on society doesn&#39;t make a lot of sense. It may make some sense to demand change from politicians, but politicians are not society.&lt;/p&gt;
&lt;p&gt;This text is not about changing society through political action, though. It is about exploring what could be a way to live within our current situation that neither loses sight of the complexities of life, by proclaiming a set of maxims, nor throws out the baby with the bath water, by being a cynical, egotistical jerk.[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As far as I&#39;m concerned, &amp;quot;AI&amp;quot; - flawed, yes, of course, I&#39;ll stop saying it now - are sticking around and are going to make a huge difference going forward. A &amp;quot;huge difference&amp;quot; here is meant as a matter of fact. I don&#39;t ascribe positive or negative values directly to huge differences and neither should you. Neither am I liking or disliking the fact that they are here to stay. I do not have crystal ball either to tell what &amp;quot;sticking around&amp;quot; means. Does it mean forever? Does it mean 20 years? 5 years? I&#39;m pretty sure they are still here in a couple of years though. Their importance might rise and then sharply drop (e.g. because nobody can pay for this stuff) or it might plateau or it might continue to eat the world. I don&#39;t know that. And none of these options are in themselves a value judgement. But. We will have to content with them and their influence somewhere in between maybe 5 years and forever.&lt;/p&gt;
&lt;p&gt;In an unpublished article about LLMs&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; I wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[H]ere&#39;s my main point: If LLMs are going to stick around then people capable of critical thought and engaging in empathy and seeing the bigger picture ought to engage with LLMs in all dimensions of the concept/tech.&lt;/p&gt;
&lt;p&gt;It is similar to the car industry, to the fossil fuel industry and many others. Leaving these jobs to unthinking, uncaring people is indeed worse than to engage with those industries. I don&#39;t know how far this argument holds exactly, but my assumption is that apart from actual societal tabus most things would benefit from people that have strong progressive values who care. Don&#39;t you think?&lt;/p&gt;
&lt;p&gt;Will this &lt;em&gt;radically&lt;/em&gt; change anything? No. Will performatively writing purity based arguments against LLMs do anything, though? No. But there is an important difference. Being open to the idea that LLMs could be changed ever so slightly to something better could do at least &lt;em&gt;something&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My unpublished article I quote here was supposed to be called &amp;quot;We Need People With Hearts Working on AI&amp;quot;. And that means on all sides of the matter. Inside companies using &amp;quot;AI&amp;quot; (like mine and probably yours) and by workers inside companies like Anthropic, too. This is how I envision we actually change a technology/product and its influence on society for the better: From the &amp;quot;inside&amp;quot; and gradually.&lt;/p&gt;
&lt;p&gt;Anyway.&lt;/p&gt;
&lt;h3 id=&quot;what-interested-me&quot;&gt;What interested me&lt;/h3&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;I am not going to close read all of this!&lt;/p&gt;
&lt;p&gt;But it&#39;s still a lot. Just FYI.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Let&#39;s read &lt;a href=&quot;https://blog.puzzmo.com/posts/2025/06/07/orta-on-claude/&quot;&gt;the first article&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over the last three months, I have been trying to really push myself out of that comfort zone and to start exploring the tools that you see the ‘vibe coding’ folks are using and get a sense for what these systems are like when you are someone who takes this stuff very seriously, and considers programming + systemic design to be the craft I plan to do for the rest of my life.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This speaks to me. As I also take programming, code quality and architecture seriously. I can&#39;t claim that I am &lt;em&gt;at all&lt;/em&gt; on the same level as this person - I for one have not worked on the typescript compiler or on something as interactive and pretty as Puzzmo -, but when it comes to what I value in my work as a programmer, it&#39;s pretty similar to this sentiment.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3 id=&quot;before-we-start&quot;&gt;Before we start&lt;/h3&gt;
&lt;p&gt;That said, allow me to self flagellate before we dig in. I don’t think LLMs are a good thing for the world. I think they concentrate power to those with capital, I think they will “increase throughput” for folks in ways that will give fewer people jobs and will force higher inter-class competition in culturally unhealthy ways like a concentrated version of the gig economy. If you want to see the epitome of “worst person you know” meme, Tucker Carlson’s point about what the social cost of driverless trucking looks like (0m-3m, perhaps open in a private browser to avoid poisoning your algorithms) is something which is always in the back of my mind. I believe in the dead internet theory and think that using LLMs to make slop which looks like it was authored by a human is unethical. I think LLMs are assisting to push the Overton window towards authoritarianism by making it easier to spread disinformation, to create false narratives and to reduce agency in favour of algorithms. Some of this stuff could be OK if we had wide-scale social safety nets and a healthy labour class, but I don’t think something like UBI is coming, and I think LLMs are going to continue to push economic growth over planet-wide health. This technology will help contribute to a worse world for most people.
[…]
Yet still, LLMs are here. They’ve already come for artists, and voice actors. Now they are here for programmers. I can’t stop that. I dig that for some people absolute embargo is the only option, but I want to understand what they are and they are going to affect culture.
[…]
I’m going to lose some internet points and try talk through my usage and experiences.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this whole part is very interesting. Orta Therox thinks that LLMs are not a good thing for this world. He is pretty hopeless as regards to the future of society. And he thinks there is nothing you can really do about it. The way this is written makes me think that this person is not without heart, just &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;fatalist&lt;/a&gt; (as I tend to be also). There are worse fates. I also understand the wish to understand them better by using them. I don not at all subscribe to the notion that you&#39;re somehow &amp;quot;turned&amp;quot; by using LLMs as some critiques suggest. So I get it. This thing will have massive - mostly negative - consequences, I can acknowledge but can&#39;t change that and as a technologist I still want to know what these things can do in practice. Kudos for writing about it in public.&lt;/p&gt;
&lt;p&gt;Some smaller parts of this I wanted to disect:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;allow me to self flagellate&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This devalues necessary and real criticism of a powerful technology that changes society. Mostly - or so the author thinks - for the worse. Calling it &amp;quot;self flagellation&amp;quot; misses the point of expressing the criticism in the first place. It&#39;s not sadomasochism or penance. You&#39;re not absolved of any bad feelings you might have if you just add a paragraph or two of &amp;quot;self flagellation&amp;quot; prose. And I kind of hope you don&#39;t feel pleasure for writing down how these things are bad for the planet.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don’t think LLMs are a good thing for the world. […] This technology will help contribute to a worse world for most people.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Alright let&#39;s go through this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think they concentrate power to those with capital, I think they will “increase throughput” for folks in ways that will give fewer people jobs and will force higher inter-class competition in culturally unhealthy ways like a concentrated version of the gig economy. If you want to see the epitome of “worst person you know” meme, Tucker Carlson’s point about what the social cost of driverless trucking looks like (0m-3m, perhaps open in a private browser to avoid poisoning your algorithms) is something which is always in the back of my mind.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maybe it&#39;s just me, but actually getting into the nitty gritty of all these examples and what they suggest for societal dynamics is very interesting to me. This sketches a picture of a society driven by technology (and therefore technologists), which steers economy, which in turn influences culture. There is a pattern here that gets repeated with the driverless trucks example: The cost of tech ultimately will cost society more than it saves (or makes money). I&#39;ll also add that it seems to me that technology itself has a hidden driver which is economy.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I believe in the dead internet theory and think that using LLMs to make slop which looks like it was authored by a human is unethical.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Somewhat disconnected from this is the point about the dead internet. Production of cultural artifacts should never be substituted by AI-generated slop. Hiding the fact that something was generated by LLMs is unethical. I imagine he was thinking about social media bots and similar things here.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think LLMs are assisting to push the Overton window towards authoritarianism by making it easier to spread disinformation, to create false narratives and to reduce agency in favour of algorithms.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The point about the Overton window is, as noted above, very interesting to me. The fact that LLMs make it easier to spread misinformation, etc. is in a way baked into the technology. It&#39;s much easier to produce kind of plausible sounding things than to produce actual facts&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; that hold up to scrutiny - if there is even anyone left doing the leg work. I am hesitant to insinuate that right wingers &amp;quot;don&#39;t care&amp;quot;. I think they do care about different things. There are idiots in their ranks. And some of them wield power, sure. But not all of them are idiots and some that wield power aren&#39;t either. But indeed, public discourse is but a chess board to them, it seems. Credibility within the established system does not matter in the same way as it does to progressives. I wonder about the end goal sometimes. If I had to guess: Remaking society definitely seems to be it. Since that is the case subverting and degrading all democratic institutions from science to journalism and politics itself seems to just make sense. To that end prompting an AI to drown the web in slop and use AI to create chat bots multiplying their voice changes society. Intellectuals on the right will know that this is (part of the) play book and find actual discourse and real credibility elsewhere, I imagine.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think LLMs are assisting [...] to reduce agency in favour of algorithms.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The point about agency is interesting but separate, I think. This is more about the owners of the algorithms and not so much about users of the tech for nefarious reasons. This point therefore cuts deeper. It posits: Whoever owns the algorithm - I will fill in here: for search, recommendations, suggestions for what to prompt the AI with, how the AI is trained and functions, etc. - basically controls some of the most important interfaces through which we make sense of the world around us today. LLMs in particular could be used to elegantly hide certain search results, by effectively &amp;quot;training out&amp;quot; certain viewpoints as relevant to a query. More generally though: How stuff is weighted and what is chosen to be displayed to the user is at least in part the result of the rules that make up &amp;quot;the algorithm&amp;quot; of the big technologies we all use today and rely on daily. And since it&#39;s often easier and more fun to ask an LLM than, say, a traditional search engine (or a library catalog before that), LLMs do indeed assist in furthering our conception of the world through (privately owned) algorithms that do some of the filtering - maybe even some of the filtering we wouldn&#39;t want them to do - and decision making for us.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some of this stuff could be OK if we had wide-scale social safety nets and a healthy labour class, but I don’t think something like UBI is coming, and I think LLMs are going to continue to push economic growth over planet-wide health.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a somewhat perplexing point. I think this relates to &amp;quot;AI&amp;quot;-induced job loss, mostly. Or at least I would hope so. LLMs will certainly be &lt;em&gt;used&lt;/em&gt; to try to push economic growth, I agree with that and it is maybe not completely wrong to say that LLMs &lt;em&gt;themselves&lt;/em&gt; will do that, but the driver here is clearly greed of the industry and not the tech in itself. The tech is persuasive and conjures in some people visions (delusions) of omnipotence and since that&#39;s the case, some will try to push for economic growth so that it may finance furthering the technology. But in the end the main driver is greed and LLMs are just the money producing vehicle du jour.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] For a pull request which is really touching all of the internal guts of an engine, being able to trivially generate a useful and well described test suite whenever you want is worth the price of Claude Code’s most expensive offering to me. Easy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What I think is important to keep in mind is that this is a tool, and not a replacement for critical thinking and taking responsibility.&lt;/strong&gt; If you’re writing production code, regardless of its source you need to be treating every line as though you wrote it and present it as code which you fully understand and can handle feedback on when it comes to code review. I’m on-call 12 hours a day every day for this code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Emphasis mine. This is a part from the guts of the post, which is quite technical, but signals - to me at least - that Claude Code is pretty good at this stuff.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt; For some reason - maybe because this person talks about maintainability and testing and refactoring - this post seems more credible to me than many others.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I think it’s likely that Claude Code will be one tool of many which I will find a place where it fits instead of being a broad replacement for writing code on a day-to-day.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Personally, I am intrigued to figure out if Claude Code could actually work as well for me - I am working mostly on legacy PHP code bases&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt; - as it worked for the author here. I expect it would be harder. I think adding it to the tool box is not a bad thing per-se, though. Although getting used to using LLMs and using them more also means more environmental impact.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;On a final note, there is an interesting tension in both “it’s likely that Claude Code will be one tool of many…” and “I don’t think LLMs are a good thing for the world.” I think the core difference here is scale, it’s like ensuring you are always turning off your house lights to save power, only to look out of the window at a bunch of commercial properties which never bother, individual choice can matter but it’s a drop in the bucket compared to say making a law encouraging self-driving cars.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like how the first article ends, because it talks about individual use which is a good framework to judge these technologies by. On a grand scale there is really not a lot you can do to further or prevent LLM adoption. You can however use these tools smartly and with scrutiny. You are not free to not give a shit, just because you know the state of the world.&lt;/p&gt;
&lt;p&gt;Okay. On to &lt;a href=&quot;https://blog.puzzmo.com/posts/2025/07/30/six-weeks-of-claude-code/&quot;&gt;the second article.&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Claude Code has considerably changed my relationship to writing and maintaining code at scale. […] Claude Code has decoupled myself from writing every line of code, I still consider myself fully responsible for everything I ship to Puzzmo, but the ability to instantly create a whole scene instead of going line by line, word by word is incredibly powerful. […] I believe &lt;strong&gt;with Claude Code, we are at the “introduction of photography” period of programming.&lt;/strong&gt; Painting by hand just doesn’t have the same appeal anymore when a single concept can just appear and you shape it into the thing you want with your code review and editing skills.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The main point here is the &amp;quot;introduction of photography&amp;quot; comment. This brings Walter Benjamin to mind and his incredibly deep essay &amp;quot;Art In The Age Of Mechanical Reproduction&amp;quot;. Programming itself is an uncomfortable medium to claim hand-maded-ness because it&#39;s hard to posit an &amp;quot;aura&amp;quot; emanating from &amp;quot;hand-written code&amp;quot; - what does that even mean, exactly? - that may be lost if it&#39;s now merely generated. Still, I could see people making this argument. And indeed in more private spaces, critiques will say that they like the practice of programming and LLMs devalue the craft. Similar arguments have been made against photography and video cameras and all the rest of society shifting technologies.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sorry. I didn’t make it so nearly all of culture’s changes are bad, and I think that LLMs are already doing social damage and will do much worse in the future - but this genie is fully out of the bottle and it is substantially going to change what we think of as programming.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is said with some of the same energy as the self flagellation line. The author seems to think you can be absolved, by pointing this out. If this is the future of programming, then I think we ought to at least start thinking what this means for the next generations of programming.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn8&quot; id=&quot;fnref8&quot;&gt;[8]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[a long list of impressive sounding improvements...] For clarity in the back because this is shocking to me, while I was still working on the existing roadmap I had prior to Claude Code over the last 6 weeks, I accomplished all of these things on my own. Mostly in the background (and then with a polish pass day for some of the larger ones). I didn’t go from working ~10 hour days to working ~16 hours or anything like that either.&lt;/p&gt;
&lt;p&gt;This was years of “tech debt” / “tech innovation” backlog for me! Done in just over a month and a half.&lt;/p&gt;
&lt;p&gt;If you understand what you are doing, the capacity for building and handling the breadth of tasks which typically live within the remit of “technical debt” do not need to be treated as debt and you can just do it as you are working on other things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If this is true, that using Claude Code to work on tech debt &amp;quot;on the side&amp;quot; is basically free, than this would indeed be great. I have a hard time believing this scales/generalizes to other stacks and an even harder time to imagine what this looks like when dealing with a team. Although I appreciate that this is a very capable dev it is still just one dev with an opinion about how code should look like. As the lead, it surely is easier to do this on the side. But this completely loses sight that technical debt is at least in part always also political.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[…] I think it’s worth noting here that we offered Claude Code to everyone on the team from the moment it because[sic] obvious how powerful of a tool it was for me personally.&lt;/p&gt;
&lt;p&gt;I would say from our team, the sort of people who have used and found value the most are people with both product, technical skills and agency to feel like they can try things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this is an important caveat. If you&#39;re not empowered to try things, then Claude Code - or any other agent for that matter - may actually not help you as much. This raises the question who didn&#39;t feel empowered and why didn&#39;t they, doesn&#39;t it?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A monorepo is perfect for working with an LLM[...] This isn’t novel work. Most of the stuff we’re doing on a day to day basis is pretty normal down-to-earth CRUD style apps.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this is more and more what I notice: The stack and setup of your system and what it tries to do for the user has a lot to do with the success of using LLMs (especially agents) to code.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There was a recent paper (which is from the pre-Claude Code days) which says that developers with AI over-estimate its impact and maybe I am.&lt;/p&gt;
&lt;p&gt;Doesn’t feel it though. Did you see that list at the top? I feel like I’m constantly trashing my usual estimation timings to the point where it’s hard for me to gauge how long a task will take.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/&quot;&gt;The recent paper in question.&lt;/a&gt; It will stay very difficult to quantify the gains of using LLMs at work. Measuring knowledge workers productivity in general is already hard. Throwing LLMs in the mix doesn&#39;t make it any easier. As long as they are a subjectively helpful tool it doesn&#39;t really matter too much. They don&#39;t even need to make the work any quicker, imho. Making it easier/safer to change code, or more enjoyable could also be metrics (that would be just as hard to measure).&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3 id=&quot;parallel-construction-for-juniors&quot;&gt;Parallel Construction for Juniors&lt;/h3&gt;
&lt;p&gt;One thing I’ve talked with folks earlier in their careers who want to still be doing a lot of the grunt work themselves is to consider writing their work, then comparing their results to the same requested by Claude Code.&lt;/p&gt;
&lt;p&gt;Parallel construction is a way to have your cake and eat it. You’re still learning and growing, but your results can be honed by seeing how the aggregate of training data in Claude Code has also decided to do it. Claude Code likely has a deeper ecosystem understanding, and may read more source code in the current codebase as well as knowing abstractions you’ve still not learned.&lt;/p&gt;
&lt;p&gt;IMO treating it as a competitor which you can learn from is a much healthier alternative to either giving up and just accepting you don’t need to know stuff anymore, or putting your head in the sand and assuming somehow this change won’t affect you.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I thought this was a very thoughtful part of the article. Doing it yourself and then comparing results is what I have been doing to learn, too. And it&#39;s not that dissimilar from something like &lt;a href=&quot;https://www.codewars.com&quot;&gt;codewars&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Going further: I think that the result of a well working software development environment is a well working software development team.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn9&quot; id=&quot;fnref9&quot;&gt;[9]&lt;/a&gt;&lt;/sup&gt; It&#39;s not output or throughput or whatever. I don&#39;t know if anyone has thought this through in this way: So if Claude Code and similar agents and other LLM tools will be part of the tool kit: How do you onboard juniors or just new colleagues in general? If the skills to evaluate output are bound by your ability to do it by hand, how do you grow workers who know the craft well enough to even work with these tools safely? How do you empower them?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;However, pragmatically, as a pairing partner with an experienced engineer constantly reviewing, amending and understanding the output - you can really treat Claude like a Pair Programming buddy with infinite time and patience, a bit too much sycophancy, and the ability to ship reasonable code given reasonable constraints in a speed I’ve not seen before.&lt;/p&gt;
&lt;p&gt;And that is like a new way to build things.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When I first came across these posts, they were presented as just another disappointing example of how things are going to shit. Another app lost to vibe coding. I obviously don&#39;t think everything written in these two posts is thought through completely, but I also didn&#39;t have the feeling this is just bs. It&#39;s at least much less bs than &lt;a href=&quot;https://fly.io/blog/youre-all-nuts/&quot;&gt;another post&lt;/a&gt; that made the rounds a while ago that I also found interesting if less carefully written.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn10&quot; id=&quot;fnref10&quot;&gt;[10]&lt;/a&gt;&lt;/sup&gt; To me it seemed that Orta Therox knows a lot and cares a lot - maybe less of doing every aspect of software development by hand - but definitely about the craft in general. And say what you will, but having these perspectives is valuable. I appreciated that he shared chat transcripts and also &lt;a href=&quot;https://github.com/puzzmo-com/xd-crossword-tools/pull/42&quot;&gt;full-blown PRs&lt;/a&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fn11&quot; id=&quot;fnref11&quot;&gt;[11]&lt;/a&gt;&lt;/sup&gt; This is the kind of vulnerable writing that I would like to see more of. I have seen a lot of sceptics just dismissing the whole topic and a lot of boosters that don&#39;t care about the craft. But reading this actually made me feel like you can be interested in the craft and still find LLMs and how they are going to influence the thing you care about interesting without sounding like you&#39;re crazy. The end.&lt;/p&gt;
&lt;p&gt;P.S.: This commentary article has been going on for about 5000 words now. There would be so much more to say, but I think I got most of what I wanted to say out. I think these topics are important and demand care and openness from all of us. Be that as people living in a society or as developers being part of a community of craftspeople: We owe it to the world we co-create to care.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Apologies for &lt;a href=&quot;https://leavesubstack.com&quot;&gt;substack&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I lost the nerve to finish it, because I felt vulnerable around it. At least I&#39;ll quote my main point from it here... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;As a trained historian of science with a Latourian bend, I always flinch a little at that word. But almost nobody knows what a &lt;a href=&quot;http://www.bruno-latour.fr/sites/default/files/89-CRITICAL-INQUIRY-GB.pdf&quot;&gt;matter of concern&lt;/a&gt; even is. Just know that &amp;quot;Matters of fact are only very partial and, I would argue, very polemical, very political renderings of matters of concern and only a subset of what could also be called states of aﬀairs.&amp;quot; (taken from the linked PDF, p. 232) &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;From a ANT perspective: seeing more of the world often means having more means of probing and understanding. More tools or more ways to perceive is a good thing. Adding LLMs to the mix of tools from that perspective is not a bad thing in itself. It is when ChatGPT or whathaveyou becomes not only your only means to engage with the world, but when it becomes your world full stop. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I personally have never used Claude Code. Codex and Copilot Agent Mode are the agents that I have used and was sorely disappointed by (so far?). &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Mostly our in-house CMS/Shop hybrid based on an older Symfony version. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have still yet to see a good rebutal of [this Article](&lt;a href=&quot;https://andymasley.substack.com/p/reactions-to-mit-technology-reviews&quot;&gt;this Article&lt;/a&gt;) and other articles by the same person around this topic of the relative harmlessness of LLM-based water and electricity usage. The person writing this, Andy Masely, is strongly associated with the effective altruism movement, which I have mixed feelings about and this is a substack. Appologies for that. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn8&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In fairness: He does say something about this later. I&#39;ll comment on it more there. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref8&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn9&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I think this can be transposed into good software development should lead to better developers not quicker delivery. If you&#39;re a solo dev or don&#39;t work in a team, for example. Same spirit. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref9&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn10&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Though: As an anthropologist of the moderns, I don&#39;t need to agree with every piece of writing to deem it interesting. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref10&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn11&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Making it obvious that no one actually reviewed the PR, but that&#39;s besides the point. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/#fnref11&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Those Recent Puzzmo Articles about Claude Code

        https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1356 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/13/dailydogo1356/" />
      <updated>2025-08-13T17:24:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/13/dailydogo1356/</id>
      <content type="html">&lt;p&gt;DailyDogo 1356 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up of a black and white corgi cardigan looking up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/780e75a0e0f3b53a571fe5fca20b3a28.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1356 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1355 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/12/dailydogo1355/" />
      <updated>2025-08-12T18:11:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/12/dailydogo1355/</id>
      <content type="html">&lt;p&gt;DailyDogo 1355 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting outside next to a canal. It&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/39a879709f407c9dd049ff718abfbdd6.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1355 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1354 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/11/dailydogo1354/" />
      <updated>2025-08-11T16:59:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/11/dailydogo1354/</id>
      <content type="html">&lt;p&gt;DailyDogo 1354 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching towards the camera and making a face.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a06d61e0d5fea42d33b75de2ac052650.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1354 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1353 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/10/dailydogo1353/" />
      <updated>2025-08-10T17:16:26Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/10/dailydogo1353/</id>
      <content type="html">&lt;p&gt;DailyDogo 1353 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching towards the camera her facial expression is expectation. Not visible in the photo: I had just pressed the door beel in a video game I was playing.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5bb9c3d82551f2243997fdcbe6c87862.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1353 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1352 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/09/dailydogo1352/" />
      <updated>2025-08-09T20:50:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/09/dailydogo1352/</id>
      <content type="html">&lt;p&gt;DailyDogo 1352 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan rolling around on a piece of grass in front of a canal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9625066be7d47c1772862acdf7f5b6b9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1352 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1351 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/08/dailydogo1351/" />
      <updated>2025-08-08T19:19:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/08/dailydogo1351/</id>
      <content type="html">&lt;p&gt;DailyDogo 1351 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sniffing a sun flower on our balcony.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4f778601ec7e19603dbd032b1d120958.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1351 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1350 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/07/dailydogo1350/" />
      <updated>2025-08-07T18:49:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/07/dailydogo1350/</id>
      <content type="html">&lt;p&gt;DailyDogo 1350 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan photographed from above. The photographer is standing on a balcony and she is watching up, through a balcony rail.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f7f8c63cc2976da747e63b0bb64687d7.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1350 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Don&#39;t Delete, Abandon



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/" />
      <updated>2025-08-06T18:52:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;PKM systems promise coherence, but they often deliver a kind of abstracted confusion. The more I wrote into my vault, the less I felt. A quote would spark an insight, I’d clip it, tag it, link it - and move on. But the insight was never lived. It was stored. Like food vacuum-sealed and never eaten, while any nutritional value slips away.&lt;/p&gt;
&lt;p&gt;Worse, the architecture began to shape my attention. I started reading to extract. Listening to summarize. Thinking in formats I could file. Every experience became fodder. I stopped wondering and started processing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.joanwestenberg.com/p/i-deleted-my-second-brain&quot;&gt;I Deleted My Second Brain&lt;/a&gt; by Joan Westenberg.&lt;/p&gt;
&lt;p&gt;There may be juicier quotes in this article by an author I respect a lot. But I think this captures a central challenge in using a notes system: It&#39;s supposed to be used by an author, not by an archivist. Be an author with a workspace. Having a place for your notes doesn&#39;t necessarily mean you have to stop being alive.&lt;/p&gt;
&lt;p&gt;The rest of the article - to me - is a well written&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, emotionally honest, but ultimately flawed justification for destroying a lot of notes. Well, that&#39;s fine, I guess. And the way the text is written, I can imagine how other note takers with a similar emotional make-up to me may wish to not only abandon their note systems&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; but to destroy them after reading this. &lt;strong&gt;The rest of this post is meant to maybe suggest to not do that.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As somebody who has done similar things in the past - with my music collection, my photo collection, my notes - I urge you to consider abandonment and archiving over deletion. Put the old stuff aside and start fresh. That&#39;s enough.&lt;/p&gt;
&lt;p&gt;The thing is: Life is short &lt;em&gt;and&lt;/em&gt; long. Even if some of our time is not that great, we may still want to look back - even if only to recognize how far we&#39;ve come. If present you can change their opinion so dramatically as to wanting to destroy years of work in an instant, do not presume that future you will never feel regret about this. Digital notes are cheap to store. In 5, 10 years, you&#39;ll be happy some of this stuff still exists. In 20 years, you&#39;ll be happy if anything survived. Or not. Either way it&#39;s no skin off your nose.&lt;/p&gt;
&lt;p&gt;It is freeing, yes, to destroy your shit. But please reconsider and abandon instead.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The weakest part is mentioning DHH, who is a shithead. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I am not going to use &amp;quot;second brain&amp;quot; as this is a brand name. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Don&#39;t Delete, Abandon

        https://blog.martin-haehnel.de/2025/08/06/dont-delete-abandon/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1349 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/06/dailydogo1349/" />
      <updated>2025-08-06T18:37:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/06/dailydogo1349/</id>
      <content type="html">&lt;p&gt;DailyDogo 1349 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying under a couch table, looking at the camera. For some reason there is yellow dog toy on her back.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b3bfe2b367cb9f07cd51b8ab5436fee2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1349 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1348 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/05/dailydogo1348/" />
      <updated>2025-08-05T19:31:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/05/dailydogo1348/</id>
      <content type="html">&lt;p&gt;DailyDogo 1348 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching down from a balcony, photographed from behind through a flowering mint plant. A bumblebee is visible looking for nectar.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/75f978205967feb367b0062f463c15ea.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1348 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1347 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/04/dailydogo1347/" />
      <updated>2025-08-04T19:13:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/04/dailydogo1347/</id>
      <content type="html">&lt;p&gt;DailyDogo 1347 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping right next to the front door, folded up as just short legged dogs can do.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0c44d8843624385073cf5bf141ba466c.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1347 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1346 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/03/dailydogo1346/" />
      <updated>2025-08-03T19:10:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/03/dailydogo1346/</id>
      <content type="html">&lt;p&gt;DailyDogo 1346 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan splooting on a sidewalk next to a canal on a half-shadowy spot. There is a fence behind her and she watches towards the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e74d66ac7d8b2407576c76ae81f7cc15.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1346 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1345 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/02/dailydogo1345/" />
      <updated>2025-08-02T20:02:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/02/dailydogo1345/</id>
      <content type="html">&lt;p&gt;DailyDogo 1345 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sniffing a packet of dog food.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/af7fc76acbf76549dd127cc2a9d9c38a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1345 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Spreeblick still exists



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/spreeblick-still-exists/" />
      <updated>2025-08-01T20:47:51Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/spreeblick-still-exists/</id>
      <content type="html">&lt;p&gt;I am German and &amp;quot;grew up&amp;quot; blogging in German and reading mostly German blogs. One big name from that time is the German blog Spreeblick. For some reason I looked up the website and to my surprise Johnny Haeusler is still at it - although Spreeblick is a newsletter on Substack.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/01/spreeblick-still-exists/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://leavesubstack.com&quot;&gt;Substack is platforming Nazis btw.&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/01/spreeblick-still-exists/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Spreeblick still exists

        https://blog.martin-haehnel.de/2025/08/01/spreeblick-still-exists/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Longplay



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/longplay/" />
      <updated>2025-08-01T20:27:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/longplay/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://longplay.rocks&quot;&gt;Longplay&lt;/a&gt; is an album-focus music player that uses your Apple Music/iTunes collection and only shows complete or mostly complete albums.&lt;/p&gt;
&lt;p&gt;Very interesting concept. There is another app called &lt;a href=&quot;https://www.albumstheapp.com&quot;&gt;Albums&lt;/a&gt; that does the same thing, but Longplay actually has &lt;a href=&quot;https://adrian.schoenig.me/blog/2025/07/15/longplay-for-mac/&quot;&gt;a Mac app&lt;/a&gt; since July!&lt;/p&gt;
&lt;p&gt;I am using Youtube Music at the moment, but this might mean that I have to either get back into owning media or subscribe to Apple Music. If you can&#39;t tell: This is a very exciting idea to me.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Longplay

        https://blog.martin-haehnel.de/2025/08/01/longplay/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Writer Decks



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/writerdecks/" />
      <updated>2025-08-01T19:03:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/writerdecks/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;A writerDeck is a device dedicated specifically and solely to writing. Technically, a typewriter is an analog writerDeck. But usually we mean some sort of computerized word processor, such as the Astrohaus Freewrite or the Alphasmart Neo, to name two of the most popular mass-produced versions. But these tend to be either too expensive or too limited for many writers, so many of us build our own.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is how &lt;a href=&quot;https://www.writerdeck.org&quot;&gt;writerDeck.org&lt;/a&gt; is describing the hobby of creating your own writerDeck. I didn&#39;t know that this term had emerged, but I always liked the idea. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html&quot;&gt;LowTech&lt;/a&gt; (I&#39;ve come to favor &amp;quot;limited tech&amp;quot; even more) is such an interesting concept. And having an old or mini computer setup solely for writing appeals to me in many ways.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/writerDeck/&quot;&gt;reddit about writerDecks&lt;/a&gt; with &lt;a href=&quot;https://www.reddit.com/r/writerDeck/wiki/index/&quot;&gt;a cool Wiki&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://tinker.sh&quot;&gt;Tinker&lt;/a&gt; - a linux distro purpose made to turn a computer into a writerDeck&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(Found this particular rabbit hole via https://social.jvns.ca/@b0rk/114949903404363776 who linked to tinker.sh)&lt;/p&gt;
&lt;p&gt;P.S.: I even owned an Astrohaus Freewrite at some point (and my dad, who is a professional writer, too!), but I would not in a million years recommend it. Because the company is absolute shit. I have had an insane correspondence with Astrohaus about a missed firmware update with a strict deadline I never received any email about before it was too late (some context can be found in &lt;a href=&quot;https://www.reddit.com/r/Astrohaus/comments/fluzgq/missed_the_update/&quot;&gt;this old reddit thread&lt;/a&gt;). After much hemming and hawing I got them to agree to fix it at their facility in the US - paid in full by me - only to hear after &lt;em&gt;weeks&lt;/em&gt; that, actually, they never could fix it to begin with! And the best thing is: The Freewrite with the old firmware &lt;em&gt;never&lt;/em&gt; even made it back to me! It got lost in the mail (with customs fees the thing had cost me upwards of 600€ if I recall correctly) - if it was ever actually sent back. An absolute atrocity of a customer service experience. Never again.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Writer Decks

        https://blog.martin-haehnel.de/2025/08/01/writerdecks/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          endoflife.date



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/endoflife-date/" />
      <updated>2025-08-01T19:01:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/endoflife-date/</id>
      <content type="html">&lt;p&gt;A very handy little tool to figure out when a device (like the &lt;a href=&quot;https://endoflife.date/ipad&quot;&gt;iPad&lt;/a&gt;) or a piece of software like the JaveScript runtime &lt;a href=&quot;https://endoflife.date/nodejs&quot;&gt;node&lt;/a&gt; stopped receiving support.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        endoflife.date

        https://blog.martin-haehnel.de/2025/08/01/endoflife-date/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          D2 Font Generator



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/d2-font-generator/" />
      <updated>2025-08-01T18:37:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/d2-font-generator/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-12-11 - This post was somehow missing the link to the generator it talks about?! Fixed. Also added a link to the Doom Text Generator.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Gosh, I have played so so much Diablo 2 (or Diablo II) in my life time. I loved how it played, how it looked and I especially liked the font it used. Well lucky me that there is a &lt;a href=&quot;https://tools.harrogath.com/d2font.html&quot;&gt;D2 Font Generator&lt;/a&gt; out there, that let&#39;s you write arbitrary text in Diablo 2&#39;s iconic font.&lt;/p&gt;
&lt;p&gt;But not only that! It also let&#39;s you choose one of the iconic colors, like green&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An image of the word &amp;amp;quot;green&amp;amp;quot; rendered in the D2 font using the iconic green color.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5eba056aaf020a0ed4c3278fd3d31baa.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;or gold&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An image of the word &amp;amp;quot;gold&amp;amp;quot; rendered in the D2 font using the iconic gold color.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/686d1def692652d0ca2da9861e27a9ef.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;which indicated set items and unique items, respectively.&lt;/p&gt;
&lt;p&gt;Pretty cool.&lt;/p&gt;
&lt;p&gt;P.S.: There is also a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/12/11/doom-text-generator/&quot;&gt;Doom Text Generator&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        D2 Font Generator

        https://blog.martin-haehnel.de/2025/08/01/d2-font-generator/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1344 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/08/01/dailydogo1344/" />
      <updated>2025-08-01T17:56:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/08/01/dailydogo1344/</id>
      <content type="html">&lt;p&gt;DailyDogo 1344 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is looking with her head tilted at the camera. As if the photographer had said something &amp;amp;quot;funny&amp;amp;quot; to her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/316c9da6544d20a1e27789beeaae558e.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1344 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1343 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/31/dailydogo1343/" />
      <updated>2025-07-31T17:24:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/31/dailydogo1343/</id>
      <content type="html">&lt;p&gt;DailyDogo 1343 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan inviting the photographer to play while holding a dog toy in her mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8747b36afc3815d0fd983f0473650093.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1343 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (The) Url Town (RSS Feed is awesome)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/31/the-url-town-rss-feed-is-awesome/" />
      <updated>2025-07-31T17:15:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/31/the-url-town-rss-feed-is-awesome/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://url.town&quot;&gt;Url Town&lt;/a&gt; is an awesome little experiment from Adam Newbold and the &lt;a href=&quot;https://omg.lol&quot;&gt;Omg.lol&lt;/a&gt; community - of which I&#39;m a part of. It&#39;s an old school web directory. Which means that you can add links to a bunch of categories and subcategories and if you want also some tags. As of this writing there were 465 entries in the directory.&lt;/p&gt;
&lt;p&gt;But the hidden gem of this awesome little resource is its &lt;a href=&quot;https://url.town/rss&quot;&gt;RSS feed&lt;/a&gt;. If - like me - you like to get the occasional random gem in your RSS reader, this is a great way to ensure that you&#39;ll see something delightful now and again that you didn&#39;t expect.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (The) Url Town (RSS Feed is awesome)

        https://blog.martin-haehnel.de/2025/07/31/the-url-town-rss-feed-is-awesome/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Monospace Web



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/31/the-monospace-web/" />
      <updated>2025-07-31T17:14:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/31/the-monospace-web/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Monospace fonts are dear to many of us. Some find them more readable, consistent, and beautiful, than their proportional alternatives. Maybe we’re just brainwashed from spending years in terminals? Or are we hopelessly nostalgic? I’m not sure. But I like them, and that’s why I started experimenting with all-monospace Web.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://owickstrom.github.io/the-monospace-web/&quot;&gt;A lovely design experiment!&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The Monospace Web

        https://blog.martin-haehnel.de/2025/07/31/the-monospace-web/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1342 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/30/dailydogo1342/" />
      <updated>2025-07-30T18:36:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/30/dailydogo1342/</id>
      <content type="html">&lt;p&gt;DailyDogo 1342 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a terace, tongue out. She is looking back at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/96096ee9e124e609ae5e62e0a89c8cf3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1342 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1341 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/29/dailydogo1341/" />
      <updated>2025-07-29T19:04:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/29/dailydogo1341/</id>
      <content type="html">&lt;p&gt;DailyDogo 1341 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back and showing her belly to the photographer.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/46187fa67f362793992c9843855c8bcb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1341 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1340 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/28/dailydogo1340/" />
      <updated>2025-07-28T19:11:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/28/dailydogo1340/</id>
      <content type="html">&lt;p&gt;DailyDogo 1340 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a carpet. A man&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d0a152cccc559ffac7ef5832bf36ed42.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1340 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1339 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/27/dailydogo1339/" />
      <updated>2025-07-27T19:41:19Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/27/dailydogo1339/</id>
      <content type="html">&lt;p&gt;DailyDogo 1339 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying in front of a balcony door and watching outside. There are lot of potted plants on the balcony visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bfb3f730b295ae35c5aa53c49646193d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1339 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1338 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/26/dailydogo1338/" />
      <updated>2025-07-26T18:44:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/26/dailydogo1338/</id>
      <content type="html">&lt;p&gt;DailyDogo 1338 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a summer dog bed on a balcony. There are plants in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e106421fd3ea6c09e7449be9b4226855.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1338 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Lebenszyklus: The Basic Idea



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/" />
      <updated>2025-07-26T12:06:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-27 - This post - that was a draft for a while - ended up in the wrong folder and therefore has a slightly confusing permalink: Even though it was &amp;quot;written&amp;quot; on 2025-07-27 it has the permalink: &amp;quot;/2025/07/26/lebenszyklus-the-basic-idea/&amp;quot;. So to rectify this, I ended up changing the created at date. So it would fit with the permalink. But - between us - this post was first published on 2025-07-27.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h3 id=&quot;intro&quot;&gt;Intro&lt;/h3&gt;
&lt;p&gt;The core idea is simple: we all go through recurring cycles in our lives. Some of these are very general, while others are highly specific to each of us. The Lebenszyklus system (Lebenszyklus is German for &amp;quot;life cycle&amp;quot;) aims to become more aware of these cycles and to do more than merely live through them: to sustainably capture the lessons learned and, by understanding the recurrence of these cycles, shape and engage with them more actively.&lt;/p&gt;
&lt;p&gt;In practical terms, setting up a Lebenszyklus system works as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Identify cycles that are meaningful to you&lt;/li&gt;
&lt;li&gt;Equip them with planning and reflection rituals&lt;/li&gt;
&lt;li&gt;Implement a meta-reflection framework to ensure the system stays &amp;quot;alive&amp;quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You could do this in all kinds of ways. I personally use a notes system powered by Obsidian and a bunch of plugins to do so.&lt;/p&gt;
&lt;h3 id=&quot;identify-cycles-that-are-meaningful-to-you&quot;&gt;Identify Cycles That Are Meaningful to You&lt;/h3&gt;
&lt;p&gt;Days, weeks, months, quarters, years - as well as seasons, mornings, weekends, birthdays, and so on - these are all examples of &amp;quot;cycles&amp;quot; that we all go through. Not all of these cycles are equally important to everyone, and we don&#39;t need to account for all of them in our system. But some cycles are ones we experience more consciously than others. Those are the ones that are most relevant to our experience of being alive.&lt;/p&gt;
&lt;p&gt;An example from my own life: weeks are more meaningful to me than months. I often live in terms of the upcoming week or reflect on past or future time in weekly segments. Months are harder for me to grasp. I do receive my salary monthly and pay my rent and many other things on a monthly basis, but I still very much operate in a weekly mode.&lt;/p&gt;
&lt;p&gt;That&#39;s not to say I don&#39;t also experience living through days or months! My weeks are very much made up of days - and the day cycle is probably the second most important cycle in my life. But I do experience them mostly in relation to the week. A week consists of a workweek (made up of workdays), which begins on Monday and ends on Friday, and a weekend that starts Friday evening. There is a lot more to a week cycle than its dictionary definition and we only have scratched the surface here.&lt;/p&gt;
&lt;h3 id=&quot;equip-your-cycles-with-planning-and-reflection-rituals&quot;&gt;Equip Your Cycles with Planning and Reflection Rituals&lt;/h3&gt;
&lt;p&gt;My weeks are shaped by three planning and reflection rituals:&lt;/p&gt;
&lt;p&gt;•	&lt;strong&gt;Monday&lt;/strong&gt;
•	&lt;strong&gt;Weekly Wrap-Up&lt;/strong&gt; - This is where I look back on the previous week&#39;s daily notes and other sources of information and reflect on what stood out to me and what I want to capture. This gives me weekly notes, which preserve meaningful moments or insights.
•	&lt;strong&gt;Weekly Planning&lt;/strong&gt; - Here, I take about half an hour to write about my plans for the week. I ask myself a few guiding questions, such as:
•	What&#39;s coming up this week?
•	What&#39;s important work-wise?
•	What are the 3 most important outcomes that would make this week a success?
•	&lt;strong&gt;Friday&lt;/strong&gt;
•	&lt;strong&gt;Weekly Review&lt;/strong&gt; - Again, I take around 30 minutes to reflect on how the week went and ask myself:
•	What went well?
•	What did I learn?
•	How did I do on the 3 most important goals?&lt;/p&gt;
&lt;p&gt;As you can see these rituals are most often - at least in my case - time-boxed writing prompts (although some parts of my review templates ask me to update my kanban board which I use to keep up with my tasks, or a spreadsheet that graphs my subjective experience - my &amp;quot;Wheel Of Life&amp;quot;.).&lt;/p&gt;
&lt;h3 id=&quot;implement-a-meta-reflection-framework-to-ensure-the-system-stays-alive&quot;&gt;Implement a Meta-Reflection Framework to Ensure the System Stays &amp;quot;Alive&amp;quot;&lt;/h3&gt;
&lt;p&gt;Thinking about the upcoming week and reflecting on how things went is all well and good. But to make sure the system doesn&#39;t just mindlessly repeat paths you once set out on - paths by the way that may no longer resonate with your current sense of meaning - it&#39;s important to regularly examine the system itself for signs of (missing) resonance.&lt;/p&gt;
&lt;p&gt;In my experience, it&#39;s very difficult to prescribe a fixed cadence for this. For example, if I decided to examine the &amp;quot;aliveness&amp;quot; of my system every quarter, I&#39;d probably soon discover that a system which is already dead won&#39;t motivate me to actually perform such a review when it would&#39;ve been time to do so.&lt;/p&gt;
&lt;p&gt;That&#39;s why I suggest asking yourself questions like these - both in conventional and unconventional ways more or less all the time:&lt;/p&gt;
&lt;p&gt;•	Is the system still alive?
•	Does it still resonate with me?
•	Does it add value?
•	Why do I feel resistance to keeping the system alive?
•	Why do I want to have a system like this in the first place - or any system at all - and why am I doing so little to maintain it?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What has changed since I first implemented this system?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The purpose of this is to find out whether the system still supports you - or whether it has become too sluggish or no longer helpful, in a word: dead.&lt;/p&gt;
&lt;p&gt;A conventional way to ask these questions is by including a question like this into one of your cycle rituals. While reflecting about how the week went, ask yourself if the system needs any adjusting.&lt;/p&gt;
&lt;p&gt;An unconventional way may be to become aware one night - when in theory you ought be trying to sleep - that the system is in the process of dying. And then actually following that intuition. That could mean to put on some clothes and go for a walk in the middle of the night while recording an audio log of this insight. Unconventional ways are by their nature not really something you plan for. But keeping an open mind and &amp;quot;giving in&amp;quot; to these moments is very important for any system that is more than just lifeless.&lt;/p&gt;
&lt;p&gt;I think it&#39;s reasonable for a system to shift and change quite often. Things are added, others are removed and just as the cycles themselves are the same and always slightly different, the system is, too - at least if it is alive.&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;What makes the Lebenszyklus system unique is its focus on resonance. As the name suggests, it embraces the fact that we all move through short- and long-term cycles that differ in meaning and importance from person to person. By equipping the cycles that matter to us with fitting planning and reflection rituals, we can extend our intentions beyond just the next cycle and preserve the lessons we&#39;ve learned - enabling us to lead a more individually meaningful, that is, more resonant life.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Lebenszyklus: The Basic Idea

        https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1337 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/25/dailydogo1337/" />
      <updated>2025-07-25T20:56:04Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/25/dailydogo1337/</id>
      <content type="html">&lt;p&gt;DailyDogo 1337 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting outside on stairs and watching the sunset.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bb89582597b8a3d9550c1a95adb74ae0.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1337 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1336 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/24/dailydogo1336/" />
      <updated>2025-07-24T20:09:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/24/dailydogo1336/</id>
      <content type="html">&lt;p&gt;DailyDogo 1336 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan playing in the sand. She is smiling towards the camera and her nose is sandy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6c6f4a58759003bd5b896e022521397a.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1336 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1335 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/23/dailydogo1335/" />
      <updated>2025-07-23T18:06:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/23/dailydogo1335/</id>
      <content type="html">&lt;p&gt;DailyDogo 1335 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting outside, watching people swimming in a canal (off camera).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/b292ce0c23032317218ed2e82a20711b.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1335 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Mini Review: How To Live



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/23/mini-review-how-to-live/" />
      <updated>2025-07-23T07:07:51Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/23/mini-review-how-to-live/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;I certainly have consumed worse books. But I have also had plenty better. This felt like an extended writing exercise without any commitment to get into the meat of the issue. I was mostly disappointed. The idea here is to present 27 different approaches to answer the question of how to live. Here they all are:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Be independent, Commit, Fill your senses, Do nothing, Think super-long-term, Intertwine with the world, Make memories, Master something, Let randomness rule, Pursue pain, Do whatever you want now, Be a famous pioneer, Chase the future, Value only what has endured, Learn, Follow the great book, Laugh at life, Prepare for the worst, Live for others, Get rich, Reinvent yourself regularly, Love, Create, Don’t die, Make a million mistakes, Make change, Balance everything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Apart from the kind of annoying reading style and the exhausting nature of reading 27 formulaic chapters, most of them are not very convincing or interesting. There were a few sentences in there that resonated with me, but most of it was just written in service of fulfilling the recipe.&lt;/p&gt;
&lt;p&gt;Spoilers below:&lt;/p&gt;
&lt;p&gt;The book ends with a conclusion consisting of two images and a couple of descriptions: A picture that could be seen as either a bunny or a duck, depending on how you look at it: &amp;quot;Is this a duck or bunny? No. This is a duck and bunny.&amp;quot; And a schematic of an orchestra with an error pointing to the conductor&#39;s position: &amp;quot;This is an orchestra. You are the composer and conductor.&amp;quot;&lt;/p&gt;
&lt;p&gt;I feel like the book should have started here and actually engage with the nature of life as bunny AND duck. A very interesting book about the good life could have been written, about the fact that life is paradoxical and a constructivist endeavor. Instead, we get a tedious book that doesn&#39;t even start to scratch the surface.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://app.thestorygraph.com/reviews/bf119f3d-4e77-49f5-a179-43b9d43ac4c9?redirect=true&quot;&gt;Review on the Storygraph.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;P.S.: Sivers has &lt;a href=&quot;https://sive.rs/htl28&quot;&gt;the conclusion&lt;/a&gt; on his website.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Mini Review: How To Live

        https://blog.martin-haehnel.de/2025/07/23/mini-review-how-to-live/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1334 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/22/dailydogo1334/" />
      <updated>2025-07-22T18:59:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/22/dailydogo1334/</id>
      <content type="html">&lt;p&gt;DailyDogo 1334 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next and under a couch photographed from above. Her head is not visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a3b663f5ae03110afd29aec76e77d0b8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1334 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Love is for the ones who love the work (Quote)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/21/love-is-for-the-ones-who-love-the-work-quote/" />
      <updated>2025-07-21T18:57:23Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/21/love-is-for-the-ones-who-love-the-work-quote/</id>
      <content type="html">&lt;!-- double spaces at the end preserve line breaks--&gt;
&lt;blockquote&gt;
&lt;p&gt;Now I let it fall back&lt;br&gt;
in the grasses.&lt;br&gt;
I hear you. I know&lt;br&gt;
this life is hard now.&lt;br&gt;
I know your days are precious&lt;br&gt;
on this earth.&lt;br&gt;
But what are you trying&lt;br&gt;
to be free of?&lt;br&gt;
The living? The miraculous&lt;br&gt;
task of it?&lt;br&gt;
Love is for the ones who love the work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(Joseph Fasano, For a student who used AI to write a paper)&lt;/p&gt;
&lt;p&gt;Found &lt;a href=&quot;https://christowski.de/blog/2025/05/love-is-for-the-ones-who-love-the-work/&quot;&gt;here&lt;/a&gt;, through &lt;a href=&quot;https://www.iamrob.in/garden/poems/Love%20is%20for%20the%20ones%20who%20love%20the%20work.md#footnote-1&quot;&gt;Robin Spielmann&#39;s beautiful Digital Garden&lt;/a&gt; (mention it &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/21/a-digital-garden-inspired-by-the-index-card/&quot;&gt;here&lt;/a&gt; first). &lt;a href=&quot;http://josephfasano.net&quot;&gt;Joseph Fasano&lt;/a&gt; is an US-American Poet.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Love is for the ones who love the work (Quote)

        https://blog.martin-haehnel.de/2025/07/21/love-is-for-the-ones-who-love-the-work-quote/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Digital Garden Inspired By The Index Card



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/21/a-digital-garden-inspired-by-the-index-card/" />
      <updated>2025-07-21T18:28:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/21/a-digital-garden-inspired-by-the-index-card/</id>
      <content type="html">&lt;p&gt;I was recently pointed in the direction of &lt;a href=&quot;https://www.iamrob.in/garden&quot;&gt;https://www.iamrob.in/garden&lt;/a&gt;, which is a very pretty index-card inspired presentation of a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/digital-garden.html&quot;&gt;Digital Garden&lt;/a&gt; created by Robin Spielmann.&lt;/p&gt;
&lt;p&gt;I happen to be myself a liker of the index-card (and adjacent) aesthetic. I created &lt;a href=&quot;https://finnmatti-deci-time.pgs.sh/index.html&quot;&gt;this little toy&lt;/a&gt; a while ago that also looks like an index card.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A Digital Garden Inspired By The Index Card

        https://blog.martin-haehnel.de/2025/07/21/a-digital-garden-inspired-by-the-index-card/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Use eleventy-img (To Optmize Images In Eleventy) With Caching (To Keep Build Times Low) On Cloudflare Pages (Which Can&#39;t Cache Optimized Images Out Of The Box)



        
      </title>
      <link href="https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/" />
      <updated>2025-07-21T17:21:58Z</updated>
      <id>https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-28 - Fixed a typo in the title (&amp;quot;optimize&amp;quot; instead of &amp;quot;optimized&amp;quot;) and made sure that the permalink stayed the same.&lt;/li&gt;
&lt;li&gt;2025-08-02 - I feel like &lt;a href=&quot;https://github.com/11ty/eleventy-img/issues/301&quot;&gt;my Github Issue&lt;/a&gt; was partly responsible for Zach Leatherman - the maintainer of Eleventy - &lt;a href=&quot;https://www.zachleat.com/web/faster-builds-with-eleventy-img/&quot;&gt;publishing a blog post about this topic&lt;/a&gt; just now that hints at that this approach may become an option of eleventy-img in the future.&lt;/li&gt;
&lt;li&gt;2025-11-23 - I am now using an on-demand solution to make builds even shorter: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/11/23/my-new-on-demand-image-resizing-pipeline-for-eleventy/&quot;&gt;My New On-Demand Image Resizing Pipeline for Eleventy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;the-problem&quot;&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Cloudflare offers &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/build-caching/#frameworks&quot;&gt;build caching&lt;/a&gt; for static site generators like &lt;a href=&quot;https://eleventy.dev&quot;&gt;Eleventy&lt;/a&gt;. Both are powering this blog. Great. But: It only caches the &lt;code&gt;.cache&lt;/code&gt; folder (in Eleventy&#39;s case) not its output folder (default is &lt;code&gt;_site&lt;/code&gt;, which I will heretofore use). This means that if you use the great &lt;a href=&quot;https://www.11ty.dev/docs/plugins/image/&quot;&gt;eleventy-img&lt;/a&gt; plugin to optimize images when your site is build, then this plugin will add inordinate amounts of time to the build process because every build on Cloudflare means a complete redo of the whole site, including the images (which would normally be read from &lt;code&gt;_site&lt;/code&gt;, but this directory is empty/nonexistent on every new build on Cloudflare pages).&lt;/p&gt;
&lt;p&gt;My site always built in just over a minute without eleventy-img activated, but with the plugin active, build times skyrocketed to 14 minutes and more. Not what you would call fast at all.&lt;/p&gt;
&lt;h2 id=&quot;the-solution&quot;&gt;The Solution&lt;/h2&gt;
&lt;p&gt;It seems other people have had similar issues, so &lt;a href=&quot;https://github.com/11ty/eleventy-img/issues/285&quot;&gt;I was lucky to find a solution&lt;/a&gt; through a fellow &lt;a href=&quot;https://omg.lol&quot;&gt;OMG.lol&lt;/a&gt; user (&lt;a href=&quot;https://melaniekat.com&quot;&gt;thanks Melanie&lt;/a&gt;). You just have to add the following to your &lt;code&gt;eleventy.config.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Image optimization: https://www.11ty.dev/docs/plugins/image/#eleventy-transform&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; imageOptions &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// Output formats for each image.&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;formats&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;webp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;auto&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// widths: [&quot;auto&quot;], // &amp;lt;- this would keep the original size, which is way too big&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;widths&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;640&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;320&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;token literal-property property&quot;&gt;failOnError&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;htmlOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token literal-property property&quot;&gt;imgAttributes&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token comment&quot;&gt;// e.g. &amp;lt;img loading decoding&gt; assigned on the HTML tag will override these values.&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;loading&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lazy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;decoding&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;async&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;

    &lt;span class=&quot;token literal-property property&quot;&gt;sharpOptions&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token literal-property property&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;ELEVENTY_RUN_MODE&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;build&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    imageOptions&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;outputDir &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;.cache/@11ty/img/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    imageOptions&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;urlPath &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;/img/built/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token comment&quot;&gt;// Copy the optimized images to the public folder after build&lt;/span&gt;
    eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eleventy.after&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;cpSync&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;.cache/@11ty/img/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;_site/img/built/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;recursive&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addPlugin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;eleventyImageTransformPlugin&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; imageOptions&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The important part is inside &lt;code&gt;if(process.env.ELEVENTY_RUN_MODE === &amp;quot;build&amp;quot;) {...}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This sets the output dir for image transformations inside of &lt;code&gt;.cache&lt;/code&gt; - which is preserved between builds and after eleventy is done (listening &lt;a href=&quot;https://www.11ty.dev/docs/events/&quot;&gt;to an event&lt;/a&gt;) we use &lt;a href=&quot;https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options&quot;&gt;cpSync&lt;/a&gt; to copy those files to their actual place.&lt;/p&gt;
&lt;p&gt;This takes care of the problem with the cache and still provides us with optimized images. My build times are now around two minutes - so it still has doubled the time needed - but are way more acceptable, if you ask me.&lt;/p&gt;
&lt;p&gt;You as the visitor should notice somewhat snappier loading times for images - as the original image (often many MBs in size) - is not used as is and downscaled anymore.&lt;/p&gt;
&lt;p&gt;P.S.: If you&#39;re wondering about the options for the plugin: I decided against including the original images in the build as these super big images are not ever displayed at full size. The width (on desktop) of the blog is 640px (and about 320px on mobile) - with images only slightly smaller, so I let eleventy create a version of the image of those sizes. I decided to forego &lt;code&gt;avif&lt;/code&gt; as an image format as this took too long to build on Cloudflare. I also added a 1400px version in the hopes that &lt;a href=&quot;https://echofeed.app&quot;&gt;Echofeed&lt;/a&gt; would pick that up and use it on &lt;a href=&quot;https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/original&quot;&gt;Mastodon&lt;/a&gt;/&lt;a href=&quot;https://finn-matti.bsky.social&quot;&gt;Bluesky&lt;/a&gt;. Apart from the original format (&lt;code&gt;png&lt;/code&gt; or &lt;code&gt;jpeg&lt;/code&gt; in most cases) I also now offer a &lt;code&gt;webp&lt;/code&gt; version, which is &lt;a href=&quot;https://developers.google.com/speed/webp&quot;&gt;a lighter weight image format&lt;/a&gt; supported by most modern browsers.&lt;/p&gt;
&lt;p&gt;P.P.S.: Some links. I found the workaround through &lt;a href=&quot;https://syntackle.com/blog/eleventy-image-html-transform-plugin-disk-cache/#11ty-fetch-plugin-exception&quot;&gt;this blogpost&lt;/a&gt;. And I also opened in the process of understanding this problem a &lt;a href=&quot;https://github.com/11ty/eleventy-img/issues/301&quot;&gt;Github issue in the plugin&#39;s repo&lt;/a&gt;. I am hoping that caching inside the .cache folder will become a standard cashing strategy in the future and we won&#39;t need using a workaround anymore.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        How To Use eleventy-img (To Optmize Images In Eleventy) With Caching (To Keep Build Times Low) On Cloudflare Pages (Which Can&#39;t Cache Optimized Images Out Of The Box)

        https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1333 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/21/dailydogo1333/" />
      <updated>2025-07-21T17:18:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/21/dailydogo1333/</id>
      <content type="html">&lt;p&gt;DailyDogo 1333 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a carpet next to a dog bone. She looks straight up into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/bd3f58e363f974ab04dc7eb877fd9a02.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1333 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Settling Mars



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/21/settling-mars/" />
      <updated>2025-07-21T09:59:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/21/settling-mars/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;@JugglingWithEggs Making Mars even a little bit habitable for humans is going to be a massive, generational endeavour.&lt;/p&gt;
&lt;p&gt;The invasion of the new world on Earth was big. But that was putting people in a place that humans can already survive in very successfully. Using conventional transport.&lt;/p&gt;
&lt;p&gt;Mars is going to take a planetwide cooperative effort. Making things right here on Earth is how we settle Mars. Not some billionaires having a rocket competition.
#space #mars&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I stumbled upon &lt;a href=&quot;https://mastodon.scot/@fluffgar/114754787874060810&quot;&gt;this Mastodon reply&lt;/a&gt; which reminded me of &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html&quot;&gt;Andrew Dana Hudson&amp;apos;s&lt;/a&gt; position about the need to update our &amp;quot;Manifest Destiny&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I do think we can go to Mars, and beyond, if we want to. But we’d have to decide to do so, collectively and democratically, probably not even as a nation-state but as a species. We’d have to put aside capitalist and nationalist competition. We’d have to take up more pressing moonshots first — decarbonization and climate repair — and then keep that momentum of big public spending flowing.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
      
      <echofeed:content type="html">
        Settling Mars

        https://blog.martin-haehnel.de/2025/07/21/settling-mars/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1332 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/20/dailydogo1332/" />
      <updated>2025-07-20T19:37:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/20/dailydogo1332/</id>
      <content type="html">&lt;p&gt;DailyDogo 1332 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a couch. A dog toy is resting on her head.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9a32cba0b2012bb9e64ea463b972d9bd.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1332 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1331 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/19/dailydogo1331/" />
      <updated>2025-07-19T20:27:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/19/dailydogo1331/</id>
      <content type="html">&lt;p&gt;DailyDogo 1331 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the back seat of a car, wearing a seat belt. Her face is scrunched up, as if she tries to say &amp;amp;quot;No Photos, please&amp;amp;quot;.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7f1583e1a626f5510680f3c434ca47f4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1331 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1330 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/18/dailydogo1330/" />
      <updated>2025-07-18T20:59:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/18/dailydogo1330/</id>
      <content type="html">&lt;p&gt;DailyDogo 1330 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a couch. Her tongue is out and she looks exhausted.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/24e1150a68dc1f44ae9675c4596683e3.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1330 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1329 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/17/dailydogo1329/" />
      <updated>2025-07-17T20:38:23Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/17/dailydogo1329/</id>
      <content type="html">&lt;p&gt;DailyDogo 1329 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Three corgi cardigan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e4e59c82fe824602c8f7f9dbc2036dbb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1329 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1328 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/16/dailydogo1328/" />
      <updated>2025-07-16T20:30:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/16/dailydogo1328/</id>
      <content type="html">&lt;p&gt;DailyDogo 1328 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on duckboards. She looks exhausted.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/28d7d4fb48d58ff83ed41f702f9a9f52.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1328 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1327 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/15/dailydogo1327/" />
      <updated>2025-07-15T20:34:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/15/dailydogo1327/</id>
      <content type="html">&lt;p&gt;DailyDogo 1327 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting next to an observation tower, looking up at a person (me!) looking down.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8894f599e6151d71577698c800d2d7cb.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1327 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1326 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/14/dailydogo1326/" />
      <updated>2025-07-14T20:59:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/14/dailydogo1326/</id>
      <content type="html">&lt;p&gt;DailyDogo 1326 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying inside a cottage, photographed through plastic curtain strips meant to keep mosquitos and the like outside.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35ee05e78c9325d6dd79742ccfe1fc71.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1326 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1325 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/13/dailydogo1325/" />
      <updated>2025-07-14T11:48:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/13/dailydogo1325/</id>
      <content type="html">&lt;p&gt;DailyDogo 1325 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is walking towards the carmera. She is walking on duckboards through a stony field.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb83b861993d23949125e28a44474e25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1325 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Summer Vacation Mode (No Daily Dogos)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/13/summer-vacation-mode-probably-no-daily-dogos/" />
      <updated>2025-07-12T21:34:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/13/summer-vacation-mode-probably-no-daily-dogos/</id>
      <content type="html">&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;DAILY DOGO UPDATE&lt;/p&gt;
&lt;p&gt;A last minute change meant that I took my laptop instead of my iPad Pro. In other words I am able - as time and internet connectivity permits - to post daily dogos even while on the road. Hooray!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;This is just a short note letting you know that I am on vacation next week and since I am not planning to take my laptop with me, I may or may not - probably not - post Daily Dogos throughout the week as this is a thing that I have yet to figure out how to do from my phone/iPad. I think I have a shortcut that is 95% there I created like 2  months ago, but I was unable to look at it before we left and so it probably doesn&#39;t work as things have changed since then.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/13/summer-vacation-mode-probably-no-daily-dogos/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Rest assured that I will &amp;quot;fix the streak&amp;quot; when I come back, so no need to worry. The dog pics will continue and Napu is fine. :)&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you are curious: It uses &lt;a href=&quot;https://workingcopy.app&quot;&gt;Working Copy&lt;/a&gt;, &lt;a href=&quot;https://s3files.app&quot;&gt;S3 Files &amp;amp; Storage&lt;/a&gt; and &lt;a href=&quot;https://scriptable.app&quot;&gt;Scriptable&lt;/a&gt; and obviously Apple Shortcuts. In a word: it&#39;s pretty complex. It pulls the Git repo, figures out the latest daily dogo from the rss feed, asks for alt text, puts the post in the right place in the file hierarchy, uploads the image to the S3-compatible object storage, commits the new post and pushes to the repo on Github. I think that&#39;s it. It&#39;s kind of a lot for such a clunky automation tool... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/13/summer-vacation-mode-probably-no-daily-dogos/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Summer Vacation Mode (No Daily Dogos)

        https://blog.martin-haehnel.de/2025/07/13/summer-vacation-mode-probably-no-daily-dogos/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1324 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/12/dailydogo1324/" />
      <updated>2025-07-12T21:10:29Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/12/dailydogo1324/</id>
      <content type="html">&lt;p&gt;DailyDogo 1324 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a carpet in front of a recliner char and watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd3d3e4c030d9977a8aee504c1dfcee5.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1324 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1323 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/11/dailydogo1323/" />
      <updated>2025-07-11T17:22:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/11/dailydogo1323/</id>
      <content type="html">&lt;p&gt;DailyDogo 1323 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on a balcony looking playfully into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c9a41239ca3c35efe4787e6c1fd78e37.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1323 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1322 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/10/dailydogo1322/" />
      <updated>2025-07-10T19:45:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/10/dailydogo1322/</id>
      <content type="html">&lt;p&gt;DailyDogo 1322 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking along a little park-like area next to a canal. The sun is standing low, so you can see some long shadows of the dog guardians.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0ddec537fd40184bf044792bf8028fac.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1322 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Systems As Imagined vs. Systems As Found



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/" />
      <updated>2025-07-10T09:27:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;So as I said above: Just &amp;quot;unfuck the networks&amp;quot; is a naive notion. It&#39;s a systems as imagined vs. systems as found &amp;quot;fallacy&amp;quot;: &lt;a href=&quot;https://www.youtube.com/watch?v=2S0k12uZR14&quot;&gt;A distinction made by Richard Cook&lt;/a&gt; that I&#39;ve found very helpful to explain what is missing from people&#39;s arguments who are about ideas and propose solutions mainly based on (new or reframed) ideas only: A system found is a freaking mess. And so is the dark forest that is the publicly visible internet.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&#39;m &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html&quot;&gt;quoting myself&lt;/a&gt; here as I wanted to have specific post I can point to going forward. Here&#39;s what Richard Cook had to say about this (I put a timestamp in there to the place where he starts talking about this):&lt;/p&gt;
&lt;div id=&quot;2S0k12uZR14&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/2S0k12uZR14?start=856&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;It is a little rambly (if entertaining!), but it basically comes down to&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Systems as imagined are state diagrams and layouts of rack panels, floor diagrams, and all sorts of this. These are systems as imagined. It&#39;s the way we make stuff and they are static and deterministic. Systems as found look more like this [... shows and describes a few pictures of messy rat kings of cables and servers and what looks like a control room and people working in them to maintain them...] Systems as found are dynamic and stochastic; they are not deterministic. […A]s one of the people in this room said, &amp;quot;we&#39;re always doing some sort of maintenance&amp;quot;. The maintenance interval [of a system as found] is essentially zero.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think this is a wonderful and rich distinction that can be used in all kind of systems.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This is a lightly edited version of what the youtube transcript says in the portion of the talk I&#39;m interested here. It&#39;s not exactly a direct quote. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Systems As Imagined vs. Systems As Found

        https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Toolbox Presented As System



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/10/a-toolbox-presented-as-a-system/" />
      <updated>2025-07-10T09:12:17Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/10/a-toolbox-presented-as-a-system/</id>
      <content type="html">&lt;p&gt;Many productivity or note taking systems are presented in a systematic fashion. If you ever have tried to implement a system as given, you probably have noticed that it doesn&#39;t really work. And at the same time not everything is a failure either. Some of the stuff does work, but some other stuff doesn&#39;t. What gives?&lt;/p&gt;
&lt;p&gt;I think that it helps to think about it that way: A system like this is only ever a system for presentation purposes. In reality it will transform into a toolbox for you to explore, adapt and use as you see fit if you deconstruct it.&lt;/p&gt;
&lt;p&gt;I imagine that one reason task-management systems and the like are presented as systems at all is because it makes presentation easier. It hides their history and the messiness of maintaining the system in practice, which is a good thing, since you&#39;re trying to get an understanding of the tools and not necessarily of the historical emergence in which these tools have been forged over time.&lt;/p&gt;
&lt;p&gt;But here&#39;s the thing: A book or class or video can only ever present a snapshot of a system in time. And it&#39;s going to be presented in a way that makes presentation as well as consumption easier. The actual work is in looking at the elements of a system as tools, evaluating them and adapting them for your own use.&lt;/p&gt;
&lt;p&gt;P.S.: This is somewhat similar to the &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/&quot;&gt;Systems As Imagined vs&amp;period; Systems As Found&lt;/a&gt; distinction, but not quite...&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A Toolbox Presented As System

        https://blog.martin-haehnel.de/2025/07/10/a-toolbox-presented-as-a-system/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Mini Review: Tiny Experiments



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/10/mini-review-tiny-experiments/" />
      <updated>2025-07-10T09:10:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/10/mini-review-tiny-experiments/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Somehow, this did not grab me at all. I ended up letting it just wash over me, not caring all too much if I got everything the author had to offer. I did finish it, so that counts for something. May have to give this another go at some point, as some parts did resonate with me, like following one&#39;s own curiosity instead of a predetermined path and filling live with meaning in that way. I also liked the idea of framing self discovery as fieldwork, experiments and (self-)anthropology.&lt;/p&gt;
&lt;p&gt;But I do not have anything that really stood out to me as particularly helpful in my current moment. Except maybe the fact that stories about entrepreneurship and following one&#39;s nose in this regard did resonate as well - even though I thought I was over that.&lt;/p&gt;
&lt;p&gt;I could see this book being an eye-opener for some who may yet have to find their way into the world of personal productivity, self-help, and so on, because it talks about many ideas in this field using her interesting framing of experimentation. But since I have read quite a few books in this regard, I was not one of them.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://app.thestorygraph.com/reviews/2e295f0b-8970-4d4d-97df-b4c91ab18486&quot;&gt;Review&lt;/a&gt; on &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/&quot;&gt;Storygraph&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Mini Review: Tiny Experiments

        https://blog.martin-haehnel.de/2025/07/10/mini-review-tiny-experiments/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1321 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/09/dailydogo1321/" />
      <updated>2025-07-09T18:40:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/09/dailydogo1321/</id>
      <content type="html">&lt;p&gt;DailyDogo 1321 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping under a couch table. Her head is suggled against a dog toy of a turtle.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c66a997e05463c10182e83f2f0697994.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1321 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1320 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/08/dailydogo1320/" />
      <updated>2025-07-08T18:08:44Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/08/dailydogo1320/</id>
      <content type="html">&lt;p&gt;DailyDogo 1320 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a wodden structure outside.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b4e77d40f48c0b44b8c462288c19398.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1320 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Quiet Moment



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/08/a-quiet-moment/" />
      <updated>2025-07-08T13:00:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/08/a-quiet-moment/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;[...] I took a hike out to a quiet place on the far side of the lake. There, I could stand for fifteen or twenty minutes listening to a layer of the world beneath our civilization. Birds sang, insects chittered, the breeze stirred the grass, but even the lake was quiet.&lt;/p&gt;
&lt;p&gt;Those twenty minutes of quiet recharge me more than any other meditation, more than a good night’s sleep, more than a holiday weekend at a resort. Sometimes, when I need a quiet place, I’ll imagine standing in the midst of the Great Plains a thousand years ago, with nothing but the sound of the wind in the grass. The brief time at the lakeside was as close as I had come to that fantasy of a quiet place.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I love this &lt;a href=&quot;https://jamierubin.net/2025/07/07/the-silence-before-the-sun/&quot;&gt;note by Jamie Todd Rubin&lt;/a&gt;. But I wanted to juxtapose this with &lt;a href=&quot;https://manuelmoreale.com/pb-nick-simson&quot;&gt;Nick Simson&#39;s sentiment&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The web is this inherently noisy, chaotic place. Trying to tame it into a genteel, country club atmosphere never works out well either. I wish I learned this lesson much earlier and wasted less time in various walled gardens and silos that only looked nice on the outside. I’m so much happier on my front porch on my little block of our noisy digital neighborhood.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because Rubin had embedded this beautiful moment in something else:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The world is a noisy place and it is hard to tune out the orchestra of modern life. So I seek quiet places. I returned to one such place over the holiday weekend, at a resort in West Virginia. The resort itself is noisy and chaotic as resorts often are. But it is surrounded by a state park, and early each morning before the revelers stirred and just as the sun was about to wink above the hill, [... see the Quote above].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The word &lt;a href=&quot;https://coyotetracks.org/blog/pressure-to-stay-genteel/&quot;&gt;genteel&lt;/a&gt; - for bad or worse - has become somewhat of &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;a warning sign&lt;/a&gt;. So much so that a certain kind of writing that I have enjoyed has become &lt;a href=&quot;https://circlejerk.blog&quot;&gt;satire&lt;/a&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/08/a-quiet-moment/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I guess what I want to say is this: Peace and quiet, wanting to write about it, wanting to experience it, dreaming about it, wanting to share it, is not on its own an indicator of ones values. I wish to continue to read (and as far as I am able: also to &lt;em&gt;write&lt;/em&gt;) about all kinds of stuff. The loud moments as well as the quiet ones. On the web and otherwise.&lt;/p&gt;
&lt;p&gt;My introverted desposition means that I seek out the quiet, the peaceful, the harmonious more than the loud. I feel like I thrive in the quiet. I wouldn&#39;t want to cede all of this aspect of life to genteel centrists. I would hope that there are moments and spaces where the quiet away from it all can still be felt and enjoyed without guilt. And that these places are not rendered politically problematic just &#39;cause they happen to be quiet places.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;To be clear: This satire is equal parts about AI, priviledged tech snobs and writing about peace and quiet. I only mourn the writing about the peace and quite part, to be exact. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/08/a-quiet-moment/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        A Quiet Moment

        https://blog.martin-haehnel.de/2025/07/08/a-quiet-moment/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1319 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/07/dailydogo1319/" />
      <updated>2025-07-07T18:46:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/07/dailydogo1319/</id>
      <content type="html">&lt;p&gt;DailyDogo 1319 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a guest bed, looking playfully into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccf1101b0875b36190665a8df549bfb1.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1319 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1318 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/06/dailydogo1318/" />
      <updated>2025-07-06T20:59:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/06/dailydogo1318/</id>
      <content type="html">&lt;p&gt;DailyDogo 1318 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching down from a stone onto a flowing river. There is a backpack to her left and a hiking show behind her. Ther are lots of green trees in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c68db41596a44402c1e7c3d457015718.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1318 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Nice Permalinks In Eleventy AND Nice Filenames in Obsidian



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/" />
      <updated>2025-07-06T20:22:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-06 - Added a couple of headings and added a little section on how to add back the title to &lt;code&gt;post.njk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;2025-07-07 - Added a link to the issue I opened on the eleventy-plugin-interlinker repo. Added some code for the previous/next links on the post.njk template.&lt;/li&gt;
&lt;li&gt;2025-07-08 - Wrote my newest insight about the broken wikilink situation.&lt;/li&gt;
&lt;li&gt;2025-07-08 - Rewrote the article, now using an Obsidian-Plugin instead of changing a bunch of templates as this won&#39;t work anyway. The old article is archived &lt;a href=&quot;https://paste.lol/matti/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian---old-version&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;A while ago &lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/&quot;&gt;I made a post&lt;/a&gt; about how to change (part of) the permalink that Eleventy generates from the filename. Since I am using &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; as my blog editor I had a little problem:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;On the one hand: I wanted to have nice, readable filenames - with spaces and everything - so that I can link between entries more easily&lt;/li&gt;
&lt;li&gt;On the other: If I use readable filenames - with spaces and everything - they get not &lt;a href=&quot;https://www.11ty.dev/docs/filters/slugify/&quot;&gt;slugified&lt;/a&gt; correctly, meaning that spaces in the filename are just urlencoded instead of replaced by dashes, etc. (see &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/22/The%20Closed%20List/&quot;&gt;this post&lt;/a&gt; for an example)&lt;/li&gt;
&lt;li&gt;On yet another, secret, third hand: Without a title in the frontmatter, posts do not get a title in my blog and &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/21/eleventy-wikilinks/&quot;&gt;Wikilinks&lt;/a&gt; won&#39;t work.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;the-solution-for-hands-one-and-two&quot;&gt;The Solution For Hands One And Two&lt;/h3&gt;
&lt;p&gt;We replace the &lt;code&gt;permalink&lt;/code&gt; of our &lt;code&gt;blog.11ydata.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;&quot;permalink&quot;: &quot;{{page.filePathStem.slice(5).replace(page.fileSlug, &#39;&#39;)}}{{page.fileSlug|slugify}}/index.html&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is a little convoluted as &lt;a href=&quot;https://www.11ty.dev/docs/data-eleventy-supplied/#page-variable&quot;&gt;Eleventy doesn&#39;t seem to expose the path without the filename&lt;/a&gt;. So we have to cut the file name off and then re-add a slugified version.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;the-solution-for-the-secret-third-hand-that-is-actually-many-hands&quot;&gt;The Solution For The Secret Third Hand (that is actually many hands...)&lt;/h3&gt;
&lt;p&gt;Since a title is mandatory in all kinds of templates and feeds and whatnot and Wikilinks won&#39;t work reliably without a title in the frontmatter of the post, the best solution for this is to use an Obsidian-Plugin. I tried out two options.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/platers/obsidian-linter&quot;&gt;Obsidian Linter&lt;/a&gt; - which has &lt;a href=&quot;https://platers.github.io/obsidian-linter/settings/yaml-rules/#yaml-title&quot;&gt;a rule for inserting a title based on the filename&lt;/a&gt; into the frontmatter.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/wenlzhang/obsidian-file-title-updater&quot;&gt;File Title Updater&lt;/a&gt; - which can &amp;quot;synchronize&amp;quot; filename and frontmatter&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I personally landed on using File Title Updater for this, because:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I still have - and always will have - files, where the title and the filename are not the same. But because the linter&#39;s rule is just one of many - and I do actually use the linter for a bunch of other things - there is no way for me to specify when I want to have the title updated and when I don&#39;t if, I&#39;d use the linter.&lt;/li&gt;
&lt;li&gt;File Title Updater furthermore has a setting to handle illegal characters, like colons (these things: &lt;code&gt;:&lt;/code&gt;). I do have some files &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/01/mini-review-let-them-theory/&quot;&gt;Mini Review&amp;colon; Let Them Theory&lt;/a&gt;, where the linter would be unable to handle these cases gracefully. As the &amp;quot;sync direction&amp;quot; would be filename (colon not allowed) -&amp;gt; title and not title -&amp;gt; filename.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So writing a new post and publishing it means that I run &lt;code&gt;File Title Updater: Sync titles using frontmatter as source&lt;/code&gt; at least once.&lt;/p&gt;
&lt;p&gt;And there you have it! Now we can have nice permalinks that are based on the filename and those filenames do not need to be &amp;quot;permalink&amp;quot; friendly (i.e. all small caps, dashes instead of spaces, etc.) and we still can adjust this on an individual basis by specifying a permalink and/or a title in the yaml frontmatter of individual posts.&lt;/p&gt;
&lt;h3 id=&quot;a-couple-of-small-caveats-to-be-aware-of&quot;&gt;A Couple Of Small Caveats To Be Aware Of&lt;/h3&gt;
&lt;p&gt;As I said above: File Title Updater has an option to handle illegal characters. But that means that when you synchronize title and filename, you may end up with something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Frontmatter: Mini Review: Let Them Theory&lt;/li&gt;
&lt;li&gt;Filename: Mini Review- Let Them Theory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Which will show up in Obsidian with the slightly awkward dash right after &amp;quot;Review&amp;quot; as in the filename. I think this is not a huge deal, as only you as the writer will ever see this and it is very unlikely that you would not find the note you&#39;re looking for because of this. I first had hoped that we could use Obsidian Linter&#39;s &lt;a href=&quot;https://platers.github.io/obsidian-linter/settings/yaml-rules/#yaml-title-alias&quot;&gt;YAML-Title-Alias&lt;/a&gt; rule to set an alias based on the title, but sadly - and surprisingly - that&#39;s not what it does. You can still add that Alias by hand, but, personally, I wouldn&#39;t bother.&lt;/p&gt;
&lt;p&gt;The other caveat is that when you start writing a new note, Obsidian is going to ask for a file name. And you won&#39;t be able to add illegal characters to that filename. Again, as soon as you sync the title once - from filename first and henceforth from frontmatter - you are good to go. This is still much nicer and more ergonomic than having to write a permalink by hand if you ask me. :)&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;It doesn&#39;t help that the unslugified filename is called &lt;code&gt;fileSlug&lt;/code&gt; for some reason... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Nice Permalinks In Eleventy AND Nice Filenames in Obsidian

        https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1317 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/05/dailydogo1317/" />
      <updated>2025-07-05T20:43:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/05/dailydogo1317/</id>
      <content type="html">&lt;p&gt;DailyDogo 1317 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking down from the balcony onto the sidewalk below. It&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/674ad0fbe56df714ce43c46c0d419546.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1317 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1316 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/04/dailydogo1316/" />
      <updated>2025-07-04T20:28:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/04/dailydogo1316/</id>
      <content type="html">&lt;p&gt;DailyDogo 1316 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking down from a bridge onto the water. There is an urban landscape in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/85b3a97491a6cd358ecbae60057ebe25.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1316 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1315 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/03/dailydogo1315/" />
      <updated>2025-07-03T17:20:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/03/dailydogo1315/</id>
      <content type="html">&lt;p&gt;DailyDogo 1315 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan with her nose deep inside a card board box that held dog food at some point.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c27fc9c77b6717b29b01ff9937ee56af.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1315 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Seedling notes



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/03/seedling-notes/" />
      <updated>2025-07-03T16:25:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/03/seedling-notes/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-04 - fixed a couple of typos and reworded the introduction&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I use the word &amp;quot;seedling&amp;quot; in some of my posts, here is where that comes from and what it means to me. This is &lt;a href=&quot;https://maggieappleton.com/garden-history#2-continuous-growth&quot;&gt;how Maggie Appleton describes &amp;quot;seedlings&amp;quot;&lt;/a&gt; as regards to &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/digital-garden.html&quot;&gt;Digital Gardens&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In garden-land, that process of researching and refining happens on the open internet. You post ideas while they’re still “seedlings,” and tend them regularly until they’re fully grown, respectable opinions.
...
Publishing imperfect and early ideas &lt;strong&gt;requires that we make the status of our notes clear to readers&lt;/strong&gt;. You should include some indicator of how “done” they are, and how much effort you’ve invested in them.&lt;/p&gt;
&lt;p&gt;This could be with a simple categorisation system. I personally use an overly horticultural metaphor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;🌱 Seedlings for very rough and early ideas&lt;/li&gt;
&lt;li&gt;🌿 Budding for work I’ve cleaned up and clarified&lt;/li&gt;
&lt;li&gt;🌳 Evergreen for work that is reasonably complete (though I still tend these over time).&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;I also include the dates I planted and last tended a post so people get a sense of how long I’ve been growing it.&lt;/p&gt;
&lt;p&gt;The word is not used only by her anymore.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; As an example, &lt;a href=&quot;https://obsidian.rocks/creating-a-digital-garden-in-obsidian/#Planting-a-seedling&quot;&gt;Obsidian.rocks&lt;/a&gt; has a very practical or performative (show, not tell) way of getting the idea of a &amp;quot;seedling&amp;quot; across:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;planting-a-seedling&quot;&gt;Planting a seedling&lt;/h2&gt;
&lt;p&gt;In Obsidian, create a note. It can be about anything, but since you are currently reading an article about digital gardening, I would suggest you make it about that. Take one of your takeaways from this article, and create a “seedling”. It might look something like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;digital-gardening-is-not-about-perfection&quot;&gt;Digital Gardening is not about perfection&lt;/h2&gt;
&lt;p&gt;Unlike blogs, notes in your digital garden are meant to grow and change over time, they are not meant to be perfect.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That’s a good start! Of course there are no links just yet, but we can change that easily enough. If this was my seedling, I would immediately want to link “Digital garden” to its own note. In Obsidian, all we have to do is add square brackets and that will create a link:&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&quot;digital-gardening-is-not-about-perfection-2&quot;&gt;Digital Gardening is not about perfection&lt;/h2&gt;
&lt;p&gt;Unlike blogs, notes in your &lt;code&gt;[[digital garden]]&lt;/code&gt; are meant to grow and change over time, they are not meant to be perfect.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then you can click the link to create a new note, and write your thoughts on digital gardens in this “parent note”:&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;And just like that, we have a very small seed that is ready to grow into a digital garden!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You&#39;ll notice that this is less about public posts communicating to the reader and more about defining a starting point of a note. I personally use seedling more in this later sense. It will &lt;em&gt;also&lt;/em&gt; help potential readers understand any seedling posts in this blog as being unfinished, but it is more about helping me as the writer.&lt;/p&gt;
&lt;p&gt;P.S.: Of course, as a the writer of this blog, I am also one of its readers. This is where the distinction I tried to make here breaks down somewhat.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m not 100% sure that she was the first to use it, but she was definitely the first that I ever hear it from. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Seedling notes

        https://blog.martin-haehnel.de/2025/07/03/seedling-notes/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;Lebenszyklus&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/03/posthub-lebenszyklus/" />
      <updated>2025-07-03T16:22:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/03/posthub-lebenszyklus/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-21 - Changed the Title (from &amp;quot;Posthub - Lebenszyklus&amp;quot;) to fit the format of my other &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Post Hubs&lt;/a&gt; added a Link to &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/a-toolbox-presented-as-a-system/&quot;&gt;A Toolbox Presented As System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2025-07-27 - Added &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/&quot;&gt;Lebenszyklus&amp;colon; The Basic Idea&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;This is hopefully going to be &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;a hub of posts&lt;/a&gt; about my notes setup that I call &amp;quot;Lebenszyklus&amp;quot; which is German for lifecycle.&lt;/p&gt;
&lt;p&gt;I wrote about the general Idea here: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/26/lebenszyklus-the-basic-idea/&quot;&gt;Lebenszyklus&amp;colon; The Basic Idea&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is not yet clear, but &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/a-toolbox-presented-as-a-system/&quot;&gt;A Toolbox Presented As System&lt;/a&gt; is definitely part of this post hub.&lt;/p&gt;
&lt;p&gt;Right now this is just a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/&quot;&gt;seedling&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;Lebenszyklus&quot;

        https://blog.martin-haehnel.de/2025/07/03/posthub-lebenszyklus/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1314 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/02/dailydogo1314/" />
      <updated>2025-07-02T19:22:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/02/dailydogo1314/</id>
      <content type="html">&lt;p&gt;DailyDogo 1314 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a blanket, looking kind of grumpy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/da34a3bf57ed02830be64dd65c1941c2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1314 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1313 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/01/dailydogo1313/" />
      <updated>2025-07-01T18:07:50Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/01/dailydogo1313/</id>
      <content type="html">&lt;p&gt;DailyDogo 1313 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on her dog bed on a very sunny balcony.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/21c29afe0d0a6c5d265eab949fd0a1a4.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1313 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Mini Review: Let Them Theory



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/07/01/mini-review-let-them-theory/" />
      <updated>2025-07-01T18:00:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/07/01/mini-review-let-them-theory/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;I really, really liked it! I was a little bit cynical about this one, because the title was a little too sensational (&amp;quot;millions can&#39;t stop talking about&amp;quot; yeah, yeah, sure...) for me, but the contents of this book hit me just right. The book is about a modern take on one of the tenants of (pop) stoicism, where suffering very often is very much a question of framing. Making clear what you can control and what you can&#39;t, really helps to let go (or &amp;quot;letting them&amp;quot;) so you can focus on yourself (or &amp;quot;let me&amp;quot;).&lt;/p&gt;
&lt;p&gt;The best part IMHO is in the later half, which talks about how you deal with (and help) others, which is something that is not talked about as much in these kinds of books otherwise. The advice to &amp;quot;let them&amp;quot; learn and grow by not enabling them, rescuing them, really hit home for me.&lt;/p&gt;
&lt;p&gt;I listened to the book and on top of the content, I wanted to highlight how pleasant and funny and emotionally honest this was done by the author herself.&lt;/p&gt;
&lt;p&gt;This book is, of course, what it is: A self-help book by a person that knows how to market her stuff. But at the same time that took surprisingly little away from the substance in this case.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://app.thestorygraph.com/reviews/c2daa782-8523-468a-b9aa-6a5b1c50b0df&quot;&gt;Review&lt;/a&gt; on &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/&quot;&gt;Storygraph&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S.: &lt;a href=&quot;https://kk.org/cooltools/book-freak-182-the-let-them-theory/?__readwiseLocation=&quot;&gt;A little bit more about it&#39;s contents&lt;/a&gt; over at Cool Tools/Book Freak.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Mini Review: Let Them Theory

        https://blog.martin-haehnel.de/2025/07/01/mini-review-let-them-theory/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1312 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/30/dailydogo1312/" />
      <updated>2025-06-30T20:14:05Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/30/dailydogo1312/</id>
      <content type="html">&lt;p&gt;DailyDogo 1312 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan with a wool sock in her mouth, ready to play.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/c4688b011ee6396439234e62847802f9.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1312 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1311 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/29/dailydogo1311/" />
      <updated>2025-06-29T19:41:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/29/dailydogo1311/</id>
      <content type="html">&lt;p&gt;DailyDogo 1311 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking through a forest.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/7b226566c6c4b10684f69b58b1544c3d.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1311 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1310 🐶



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/28/dailydogo1310/" />
      <updated>2025-06-28T21:03:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/28/dailydogo1310/</id>
      <content type="html">&lt;p&gt;DailyDogo 1310 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to - and with her head under - a couch. A couch leg is visible. Half her head rests on a carpet. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1310 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Uploading Images For Your Eleventy Blog to Cloudflare R2 from Obsidian



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/" />
      <updated>2025-06-28T12:42:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/</id>
      <content type="html">&lt;p&gt;At some point I will write about my &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; as a blog editor setup in more detail, but I just wanted to make a note here, that the plugin &lt;a href=&quot;https://github.com/jvsteiner/s3-image-uploader&quot;&gt;S3 Image Uploader&lt;/a&gt; does indeed work for R2 as well.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;create an R2 bucket&lt;/li&gt;
&lt;li&gt;create an API token with read and write access for your bucket&lt;/li&gt;
&lt;li&gt;put the token data into your password manager (key id, secret key, &amp;quot;jurisdiction-specific&amp;quot; S3 endpoint, token value just in case (even though we don&#39;t use it here))&lt;/li&gt;
&lt;li&gt;install S3 Image Uploader in your vault&lt;/li&gt;
&lt;li&gt;enter the data from your token&lt;/li&gt;
&lt;li&gt;Access Key ID goes into the field AWS Access Key ID&lt;/li&gt;
&lt;li&gt;Secret Access Key goes into the field AWS Secret Key&lt;/li&gt;
&lt;li&gt;enter some other details for the connection&lt;/li&gt;
&lt;li&gt;region can be auto&lt;/li&gt;
&lt;li&gt;bucket name is the name of your r2 bucket&lt;/li&gt;
&lt;li&gt;important: activate use custom endpoint&lt;/li&gt;
&lt;li&gt;enter the &amp;quot;jurisdiction-specific&amp;quot; S3 endpoint url there&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;(optional) If - like me - you have access to your media set up through a Cloudflare Pages Function (I&#39;ve used &lt;a href=&quot;https://developers.cloudflare.com/pages/tutorials/use-r2-as-static-asset-storage-for-pages/&quot;&gt;this tutorial&lt;/a&gt;) you also want to enable and fill out the custom image url.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that&#39;s already it. You can see my first upload using this setup if you visit my latest &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/28/dailydogo1310/&quot;&gt;DailyDogo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here&#39;s the source of that post:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token front-matter-block&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;
&lt;span class=&quot;token front-matter yaml language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; DailyDogo 1310 🐶
&lt;span class=&quot;token key atrule&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token datetime number&quot;&gt;2025-06-29T00:03:02+03:00&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;lastmod&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token datetime number&quot;&gt;2025-06-29T00:03:02+03:00&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; DailyDogo&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;---&lt;/span&gt;&lt;/span&gt;
DailyDogo 1310 🐶

&lt;span class=&quot;token url&quot;&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;[&lt;span class=&quot;token content&quot;&gt;A black and white corgi cardigan lying next to - and with her head under - a couch. A couch leg is visible. Half her head rests on a carpet. She&#39;s looking into the carmera.&lt;/span&gt;](&lt;span class=&quot;token url&quot;&gt;https://blog.martin-haehnel.de/media/uploads/2025/1ae7b1dc8c47de9082f64581a850c503.jpeg&lt;/span&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have no idea why it&#39;s called that, I also feel like they changed the UI here recently... anyway this endpoint just works. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I have since moved on to use &lt;a href=&quot;https://blog.martin-haehnel.de/how-to-use-eleventy-img-to-optmize-images-in-eleventy-with-caching-to-keep-build-times-low-on-cloudflare-pages-which-cant-cache-optimize-images-out-of-the-box/&quot;&gt;eleventy-img&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Uploading Images For Your Eleventy Blog to Cloudflare R2 from Obsidian

        https://blog.martin-haehnel.de/2025/06/28/working-with-r2-from-obsidian/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1309 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/27/dailydogo1309/" />
      <updated>2025-06-27T20:11:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/27/dailydogo1309/</id>
      <content type="html">&lt;p&gt;DailyDogo 1309 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting by the entrance of the yard of a café.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1309-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1309 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1308 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/26/dailydogo1308/" />
      <updated>2025-06-26T19:20:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/26/dailydogo1308/</id>
      <content type="html">&lt;p&gt;DailyDogo 1308 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a lawn watching back to the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1308-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1308 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1307 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/25/dailydogo1307/" />
      <updated>2025-06-25T20:01:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/25/dailydogo1307/</id>
      <content type="html">&lt;p&gt;DailyDogo 1307 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to the apartment&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1307-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1307 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1306 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/24/dailydogo1306/" />
      <updated>2025-06-24T18:28:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/24/dailydogo1306/</id>
      <content type="html">&lt;p&gt;DailyDogo 1306 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to a couch, looking somewhat confused into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1306-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1306 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          New Tags Page



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/23/new-tags-page/" />
      <updated>2025-06-23T18:49:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/23/new-tags-page/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-23 - corrected a mistake about mulit word tags: The &lt;em&gt;do&lt;/em&gt; work in Eleventy, the don&#39;t work in Obsidian, which is my Blog editor.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Just a quick little note, that this blog now finally has &lt;a href=&quot;https://blog.martin-haehnel.de/tags/&quot;&gt;a proper tags page&lt;/a&gt; in the navigation.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/new-tags-page/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I also used the opportunity to clean up my tags a little bit. There were still a lot of them that were multi word strings from a time when this was still a &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;Hugo-based blog&lt;/a&gt; - which &lt;a href=&quot;https://help.obsidian.md/tags&quot;&gt;don&#39;t work in Obsidian&lt;/a&gt; (my editor for this blog).&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Which has space for it thanks to my work in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/23/mobile-nav/&quot;&gt;Creating A Navigation Menu For the Eleventy Base Blog&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/new-tags-page/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        New Tags Page

        https://blog.martin-haehnel.de/2025/06/23/new-tags-page/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Mini-Review: The AI Con



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/" />
      <updated>2025-06-23T18:22:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;I give this a 4 out of 5 because it has helped me to fill out my intuitions about &amp;quot;AI&amp;quot; with facts and sourced stories. I could not give it more, though, because it left me numb in a similar fashion like the unhabitable earth/we are the weather did back then as regards to climate change : I come off of it feeling as fatalistic as ever.&lt;/p&gt;
&lt;p&gt;In other words: A book like this doesn&#39;t do enough - which is an unkind thing to say - to let me see a future beyond just rejection of the described present extended into the future. Maybe that&#39;s asking too much of a contemporary critique of the AI-industry.&lt;/p&gt;
&lt;p&gt;One interesting note: I am a programmer and I have found LLMs to be helpful at times. It&#39;s interesting how little this book focuses on LLMs for programming. And I do agree: I see &lt;em&gt;much&lt;/em&gt; bigger problems with the technology in law, medicine, administration, etc. I can&#39;t deny, though, that I would have liked a little more substance when it comes to the field of software development which is also full of hype, but I think it&#39;s not as clear-cut that &amp;quot;AI&amp;quot; is a net negative here.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That&#39;s all there is to &lt;a href=&quot;https://app.thestorygraph.com/reviews/ae9c1698-8d10-4d2c-be60-bfc979a9f0a5&quot;&gt;my mini review&lt;/a&gt; on the Storygraph.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Which I wrote about &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/&quot;&gt;here&lt;/a&gt; &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Mini-Review: The AI Con

        https://blog.martin-haehnel.de/2025/06/23/mini-review-ai-con/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1305 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/23/dailydogo1305/" />
      <updated>2025-06-23T18:20:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/23/dailydogo1305/</id>
      <content type="html">&lt;p&gt;DailyDogo 1305 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan with a dog toy in her mouth waiting for the photographer to stop taking photos and start playing tug.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1305-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1305 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1304 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/22/dailydogo1304/" />
      <updated>2025-06-22T20:01:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/22/dailydogo1304/</id>
      <content type="html">&lt;p&gt;DailyDogo 1304 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sleeping with her head half under a couch. Her tongue sticks out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1304-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1304 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Closed List



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/22/The%20Closed%20List/" />
      <updated>2025-06-22T10:03:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/22/The%20Closed%20List/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-23 - I just noticed that this post has a weird permalink: https://blog.martin-haehnel.de/2025/06/22/The%20Closed%20List/ I won&#39;t actually change this as I like my URLs to be stable for the lifetime of the blog, but I wanted to note, that I noticed it. The background here is that I accidentally named the file (which will be part of the permalink) like the title of the blogpost. Which &lt;em&gt;works&lt;/em&gt;, but I&#39;d rather it wouldn&#39;t have, I think... Although it makes me think if working with filename = title is easier to work with in &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; and if I should just slugify that instead of making sure I pick a filename that works nicely as a permalink.&lt;/li&gt;
&lt;li&gt;2025-07-08 - This post was briefly not available because I had written the value for the permalink key in the yaml frontmatter with urlencoded spaces &lt;code&gt;%20&lt;/code&gt; when I &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/&quot;&gt;updated my permalink structure&lt;/a&gt; recently. But that doesn&#39;t work. The permalink has to be written like this if it should include spaces in the build: &lt;code&gt;/2025/06/22/The Closed List/index.html&lt;/code&gt;. TIL.&lt;/li&gt;
&lt;li&gt;2025-07-27 - fixed a typo in the Productivity tag (it read &amp;quot;Productvitiy&amp;quot;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;A closed list approach to your ToDo-List works like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It strikes me that most of the task-management systems that actually work – perhaps even all of them – do so because they’re some version of a “closed list”. A closed list is just any list that has a fixed number of entries, as opposed to an endlessly increasing number of entries. If you have a practice of picking three “must dos” for the day, that’s a closed list.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So writes Oliver Burkeman in his &lt;a href=&quot;https://ckarchive.com/b/qdu8h7h468d2quzwnnmw7u870qkkkb4h4kglp&quot;&gt;most recent Newsletter&lt;/a&gt;. I totally agree. It&#39;s the reason why the little template we use on didyoudoit.lol (find out more &lt;a href=&quot;https://discourse.lol/t/take-part-in-our-little-accountability-experiment-over-at-didyoudoit-lol/1430&quot;&gt;here&lt;/a&gt;) is structured around your three most important goals for the week.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The Closed List

        https://blog.martin-haehnel.de/2025/06/22/The%20Closed%20List/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1303 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/21/dailydogo1303/" />
      <updated>2025-06-21T21:05:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/21/dailydogo1303/</id>
      <content type="html">&lt;p&gt;DailyDogo 1303 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking along a park track. There is an very nice flowering meadow on the right.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1303-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1303 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (not only) Font Sizing Using the rem Unit in CSS



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/" />
      <updated>2025-06-21T11:43:14Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/</id>
      <content type="html">&lt;p&gt;Just a quick note, since I knew about the general idea, but never looked into it more:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The difference between rem units and em units is that em units are relative to the font size of their own element, not the root element. As such they can cascade and cause unexpected results.&lt;/p&gt;
&lt;p&gt;— &lt;a href=&quot;https://www.sitepoint.com/understanding-and-using-rem-units-in-css/&quot;&gt;Rem in CSS: Understanding and Using rem Units&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/font-size#rems&quot;&gt;&lt;code&gt;rem&lt;/code&gt; units&lt;/a&gt; are nice, because the are always relative to the font size of the root element, which makes them consistent (and accessible) no matter the Zoom, etc. that the use may have chosen.&lt;/p&gt;
&lt;p&gt;As long as you always use &lt;code&gt;rem&lt;/code&gt;s in your CSS, everything will scale according to the root elements font-size property. This can be used for more than &amp;quot;just&amp;quot; the &lt;code&gt;font-size&lt;/code&gt; on individual elements and there are moments in complex layouts where scaling everything off of the &lt;code&gt;:root&lt;/code&gt;&#39;s font-size is too simple an approach,  but it&#39;s a good starting assumption.&lt;/p&gt;
&lt;p&gt;So how does it work in practice?&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;pre class=&quot;language-css&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 62.5%&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/* 0.1rem = 1px, 1rem = 10px, 1.4rem = 14px, etc. */&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;body&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.6rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;/* 1.6rem = 16px */&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So this would set any child element of the body to have an initial font size of &lt;code&gt;1.6rem&lt;/code&gt; which equates to &lt;code&gt;16px&lt;/code&gt; in modern browsers - which is standard regardless - but using the &lt;a href=&quot;https://www.aleksandrhovhannisyan.com/blog/62-5-percent-font-size-trick/&quot;&gt;62.5% trick&lt;/a&gt; as it is called makes calculations much easier since it sets the initial font-size to &lt;code&gt;10px&lt;/code&gt; in all modern browsers which means &lt;code&gt;0.1rem&lt;/code&gt; = &lt;code&gt;1px&lt;/code&gt;. So in this way you can have your cake and eat it too: Preserve the default font-size of 16px (so you won&#39;t need to set it on all elements) but you also need to do less (hard) maths.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.sitepoint.com/understanding-and-using-rem-units-in-css/&quot;&gt;That quoted overview article&lt;/a&gt; links to the OG of this approach and a couple of others that were interesting, too:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Jonathan Snook: &lt;a href=&quot;https://www.sitepoint.com/understanding-and-using-rem-units-in-css/&quot;&gt;Font sizing with rem&lt;/a&gt; - where it all started&lt;/li&gt;
&lt;li&gt;Harry Roberts: &lt;a href=&quot;https://csswizardry.com/2011/05/font-sizing-with-rem-could-be-avoided/&quot;&gt;Font sizing with rem could be avoided&lt;/a&gt; - why doing the &amp;quot;62.5%&amp;quot; trick might make life harder, not easier&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Chris Coyier: &lt;a href=&quot;https://css-tricks.com/rems-ems/&quot;&gt;Font Size Idea: px at the Root, rem for Components, em for Text Elements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/&quot;&gt;I am not at all a frontend person&lt;/a&gt;, although I have been more interested recently to go back to basics in this regard and so I found &lt;a href=&quot;https://css-tricks.com/?s=rem&quot;&gt;searching css-tricks for &lt;code&gt;rem&lt;/code&gt;&lt;/a&gt; and skimming those articles to refresh my memory very helpful.&lt;/p&gt;
&lt;p&gt;One last thing: If you&#39;re not rolling your own CSS you may not want to use the 62.5% trick. From the article I linked that explains that trick:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We saw that this math trick doesn’t fundamentally change font size scaling and is still accessible. But just because you &lt;em&gt;can&lt;/em&gt; do something doesn’t mean that you &lt;em&gt;should&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;In fact, there’s one major drawback to using this approach that we haven’t talked about yet: It makes it much harder to integrate with libraries that don’t use this technique. For example, if your CSS has a root font size of 62.5%, and you import a library component that was styled under the assumption that &lt;code&gt;1rem = 16px&lt;/code&gt;, then the computed values are going to be way off.&lt;/p&gt;
&lt;p&gt;So while the 62.5% trick can be useful, I don’t recommend using it unless you know you’re never going to need to import other UI component libraries (or that other teams won’t need to import your components into their code). Alternatively, you could opt to use an unstyled UI library and apply the styling yourself.
— &lt;a href=&quot;https://www.aleksandrhovhannisyan.com/blog/62-5-percent-font-size-trick/#should-you-use-this-technique&quot;&gt;The 62.5% Font Size Trick - Should You Use This Technique?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So if you&#39;re planning to use Tailwind or Bootstrap or whatever this is not applicable, but in that case you would use their relative sizing utilities anyways.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Not going to put here a full example, at least not yet... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although, as I said, setting the font-size on the body to &lt;code&gt;1.6rem&lt;/code&gt; seems to make his point moot. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        (not only) Font Sizing Using the rem Unit in CSS

        https://blog.martin-haehnel.de/2025/06/21/css-font-sizing-using-the-rem-unit/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1302 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/20/dailydogo1302/" />
      <updated>2025-06-20T20:01:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/20/dailydogo1302/</id>
      <content type="html">&lt;p&gt;DailyDogo 1302 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan watching down from a balcony, photographed from the balcony door.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1302-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1302 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          4000 Weeks Of Optimization - But For What



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/20/4000-weeks-of-optimization/" />
      <updated>2025-06-20T08:35:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/20/4000-weeks-of-optimization/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-20 - Created this note&lt;/li&gt;
&lt;li&gt;2025-06-20 - Corrected some typos and tried to clean up some muddled writing&lt;/li&gt;
&lt;li&gt;2025-07-05 - Corrected a link and fixed some typos&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;You know, I can be surprisingly petty, if I want to. My notes system is relatively big and so it happened that I stumbled upon a note from a negative review of a book I found really valuable. The title of said review reads:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4000 Weeks by Oliver Burkeman - my notes (tldr an unconvincing feel-good book for the lazy and unambitious)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here are its main points:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;His [Burkeman&#39;s] whole theory revolves around the idea that all productivity problems are rooted in human tendency to avoid facing the reality that our lifetime is finite. Procastination? Avoidance strategy. Problem committing? Avoidance strategy. Workaholism? Avoidance strategy.&lt;/li&gt;
&lt;li&gt;That theory is obviously flawed. Tons of people have solved the problems he described and none of it had anything to do with facing the fact that their time on Earth is limited. They simply found something worth commiting to. When you’re convinced that you’re working on something that needs to exist in the world and will not exist without you, you have zero problems commiting to this project and won’t struggle with procrastination. Also workaholism becomes a non-issue since you’re simple what needs to be done without having any second thoughts about if it’s truly worth it.&lt;/li&gt;
&lt;li&gt;There are tons of logical errors like this in the book. [...]&lt;/li&gt;
&lt;li&gt;Most of his advice boils down to “chill, drop your ambitions, don’t try to do so much, work less and focus on the things that truly matter”. Quote: “You almost certainly won’t put a dent in the universe.”. So why even bother trying? Also please just accept that things move at a certain pace. The very simple counter points here are 1) the only people who ever achieve anything big are the ones who are crazy enough to believe they can, 2) most speed limits are an illusion and there is absolutely no reason to move at the same glacial pace as everyone else, 3) if people know what to focus on they have absolute no problem doing so. The key issue is not that people don’t know that focusing on things that matter is a smart idea but rather that they don’t know what these things are.&lt;/li&gt;
&lt;li&gt;[...]&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://jakobgreenfeld.com/4000-weeks&quot;&gt;It&#39;s written by Jakob Greenfeld&lt;/a&gt; who is still included in my feed reader, because I sometimes do enjoy wrong takes like this, especially if they are written in an apodictic voice.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/20/4000-weeks-of-optimization/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; And so &lt;a href=&quot;https://jakobgreenfeld.com/anti-optimization/&quot;&gt;this recent post of his&lt;/a&gt; arrived in my feed reader the other day:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Optimization is sucking the soul out of everything&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In which he goes on to share this observation:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Watching a team coached by Pep Guardiola is as exciting as watching paint dry.&lt;/p&gt;
&lt;p&gt;He took the idea that the opponents can’t score goals if your team has the ball to extreme levels. His teams keep passing the ball around with no attempt to create anything.&lt;/p&gt;
&lt;p&gt;It’s not uncommon for his team to have the ball 70%+ of the time.&lt;/p&gt;
&lt;p&gt;His team keeps passing the ball, minimizing errors, and waiting for statistically optimal opportunities to shoot on the goal.&lt;/p&gt;
&lt;p&gt;When you practice little else but passing the ball around and remove any element of “play” from the equation it is impossible for the other team to steal the ball from you.&lt;/p&gt;
&lt;p&gt;When his team scores a goal they could keep passing the ball around, back and forth, from left to right until the other team became too tired to keep chasing them.&lt;/p&gt;
&lt;p&gt;This statistically-optimal strategy is undeniably efficient. The trophies keep piling up as his system grinds opponents into dust.&lt;/p&gt;
&lt;p&gt;So of course coaches everywhere started copying Guardiolas’s methods.&lt;/p&gt;
&lt;p&gt;But it’s neither fun to play like this, to play against a team playing like this, or to watch a team playing like this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He ends it with this sentiment:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The imperfections, rough edges and unpredictability are where the soul lives.&lt;/p&gt;
&lt;p&gt;It’s what makes the human experience human.&lt;/p&gt;
&lt;p&gt;Everyone wants frictionless experiences these days. But smooth experiences are boring. Rough edges are where personality lives.&lt;/p&gt;
&lt;p&gt;When you do find something with actual soul, the payoff is way bigger than optimized alternatives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Now, I won&#39;t put words in his mouth, but I will give my interpretation: That Four Thousand Weeks was such a success is precisely because it is a book with soul! It is very funny to me - in a grim how in the fuck does he not get it kind of way - that &lt;a href=&quot;https://sive.rs/kimo&quot;&gt;Derek Sivers&#39; &amp;quot;There&#39;s no speed limit&amp;quot;&lt;/a&gt; is brought to bear on Burkeman&#39;s observations. The meat of that essay:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In our three-hour lesson that morning, he [Kimo Williams] taught me a full semester of Berklee’s harmony courses. In our next four lessons, he taught me the next four semesters of harmony and arranging classes.&lt;/p&gt;
&lt;p&gt;When I got to college and took my entrance exams, I tested out of those six semesters of requirements.&lt;/p&gt;
&lt;p&gt;Then, as Kimo suggested, I bought the course materials for other required classes and taught myself, doing the homework in my own time. Then I went to the department head and took the final exam, getting full credit for those courses.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sivers&#39; text is itself part of his own collection of writing called &amp;quot;Hell Yeah Or No&amp;quot;. And Sivers himself has also &lt;a href=&quot;https://sive.rs/book/4000Weeks&quot;&gt;a note on Four Thousand Weeks&lt;/a&gt;, which funnily enough subverts Greenfeld&#39;s take completely:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Give up hope and embrace your limits. Everything you do means giving up something else. Say yes to less. He’s one of my favorite authors, so wonderfully thorough, but I already agree and am living this way. (My “Hell Yeah or No” was about this subject.) Still, I’d recommend it to anyone.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Because Sivers point - which is spelled out very clearly in his Berkeley commencement speech &lt;a href=&quot;https://sive.rs/berklee&quot;&gt;6 things I wish I knew the day I started Berklee&lt;/a&gt; that also talks about the no speed limits mindset - is precisely that you have to choose and embrace that you can&#39;t be both distracted and laid back on the one hand but also successfully test out of a bunch of classes and graduate from Berkerley after only 2.5 years on the other. You have to instead apply yourself to the things that matter. Both are impossible to do at the same time.&lt;/p&gt;
&lt;p&gt;Greenfeld strikes me as a Sahil Bloom type, who in &lt;a href=&quot;https://www.sahilbloom.com/newsletter/reflections-from-a-think-week-retreat&quot;&gt;a recent newsletter&lt;/a&gt; had shared this quote about AI in the workplace - here quoted with a little surrounding context:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In a recent note, Axios CEO Jim VandeHei offered the following (emphasis mine):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Employees need the hard truth that entire classes of jobs could be wiped away, especially if people don&#39;t quickly adapt…We tell most staff they should be spending 10% or more of their day using AI to discover ways to double their performance by the end of the year. Some, like coders, should shoot for 10x-ing productivity as AI improves.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Urgency is no longer a nice to have—it&#39;s a necessity. A requirement for survival. The new oxygen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is just a version of what Sam Altman - yeah, the OpenAI CEO - is claiming in &lt;a href=&quot;https://blog.samaltman.com/how-to-be-successful&quot;&gt;How To Be Successful&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Compounding is magic. Look for it everywhere. Exponential curves are the key to wealth generation.&lt;/p&gt;
&lt;p&gt;A medium-sized business that grows 50% in value every year becomes huge in a very short amount of time. Few businesses in the world have true network effects and extreme scalability. But with technology, more and more will.  It’s worth a lot of effort to find them and create them.&lt;/p&gt;
&lt;p&gt;You also want to be an exponential curve yourself—you should aim for your life to follow an ever-increasing up-and-to-the-right trajectory. It’s important to move towards a career that has a compounding effect—most careers progress fairly linearly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Back to Sahil Bloom, whose anxiety and desperation comes through in his writing:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Last week, I went on my first “Think Week” retreat.&lt;/p&gt;
&lt;p&gt;Three days. Limited connectivity. No meetings. Just reading, deep conversations, journaling, and thinking.&lt;/p&gt;
&lt;p&gt;I typically try to take a “Think Day” about once a month—but with the utter chaos of my book launch and tour over the last 12 months, I hadn’t been able to create the space necessary to zoom out and properly engage in this ritual.&lt;/p&gt;
&lt;p&gt;If I’m being completely honest, I’d grown increasingly overwhelmed during that period. I&#39;d felt the steady buildup of stress, anxiety, and tension that thrives in a reactive environment of constant stimulus and response.&lt;/p&gt;
&lt;p&gt;So when my business partner proposed a “Think Week” retreat at his home in Cabo, I blocked my calendar and eagerly awaited its arrival.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Burkeman&#39;s book is making a dent, because it dares to pose the question: &amp;quot;What are you trying to be oh-so-successful for my dear guy?&amp;quot;&lt;/p&gt;
&lt;p&gt;A couple more of my points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;There will almost certainly be more things that matter to you than you have time for, too. So you will have to choose.&lt;/li&gt;
&lt;li&gt;I do agree, brainless or joyless optimization - compounding for compounding&#39;s sake is a form of that - is soulless. And success without soul is soul-sucking. So if you attempt to compound - compound something that matters at least (but see 1).&lt;/li&gt;
&lt;li&gt;There is nothing inherently wrong with wanting to chill either. But if you chill, actually chill.&lt;/li&gt;
&lt;li&gt;I have a visceral reaction to anyone who is putting thinkers, like old dead philosophers, on a pedestal. Judge their ideas in the context you use their ideas in. Do they actually still work? If Burkeman writes that Schopenhauer might&#39;ve overlooked something maybe he had! Conversely: Using philosophical ideas for self-help is not an attempt to fake &amp;quot;depth&amp;quot; it&#39;s just engaging with philosophical ideas. Of course, Burkeman (or you!) may be wrong. But please, let&#39;s stop giving impressive sounding names or jobs too much credit.&lt;/li&gt;
&lt;li&gt;Wouldn&#39;t it be nice if everything was clear? No. Embrace the resonance. &lt;a href=&quot;https://michael-16366.medium.com/kayaks-and-superyachts-2c3a7debb618&quot;&gt;And enjoy the ride.&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Motivation is weird. I get it. Driven people tend to brainwash themselves into doing things that they might otherwise not manage to do. We see it everywhere in productivity and business advice circles. But brainwashing yourself is not the same as coming to grips with our real, finite lives. Things take time and soon - way too soon - you won&#39;t be here anymore (or anywhere, really). Making sure you don&#39;t forget that while you are still around, is one of the big lessons of Four Thousand Weeks.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;It must be a mix of schadenfreude, astonishment and masochism on my end. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/20/4000-weeks-of-optimization/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        4000 Weeks Of Optimization - But For What

        https://blog.martin-haehnel.de/2025/06/20/4000-weeks-of-optimization/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1301 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/19/dailydogo1301/" />
      <updated>2025-06-19T19:05:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/19/dailydogo1301/</id>
      <content type="html">&lt;p&gt;DailyDogo 1301 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan photographed from below a recliner chair. She is looking right into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1301-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1301 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1300 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/18/dailydogo1300/" />
      <updated>2025-06-18T19:45:14Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/18/dailydogo1300/</id>
      <content type="html">&lt;p&gt;DailyDogo 1300 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on a guest bed (for humans) looking playfully into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1300-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1300 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I Renewed My Oura Membership Subscription



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/17/oura-renewal/" />
      <updated>2025-06-17T17:16:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/17/oura-renewal/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;To get an idea about the differences and similarities in sleep tracking I wear both my watch and my ring at night and can say that for all practical purposes the differences between wearing a watch, a ring, or using an app listening to me sleep via microphone are pretty negligible, it seems.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;It doesn&#39;t help that what I consider a normal weekend morning in which I wake up - after having gone to bed at 3 or 4 in the night - at 8 or 9 to take out the dog and give it food just to sleep for four more hours, seems to be impossible for Autosleep to wrap its circuits around. Sleep trackers in general have a hard time accommodating this pattern. The best is Oura as long as I don&#39;t open the app and let the ring sync.
— &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html&quot;&gt;Yearly Theme 2024 Recap - Year Of Sleep&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is what I wrote late last year when recaping my &amp;quot;Year Of Sleep&amp;quot;. I have now renewed my relatively costly Oura subscription because I was not happy with the level of tracking quality from my Apple Watch when it comes to fragmented sleep in particular.&lt;/p&gt;
&lt;p&gt;I would not recommend doing this, if you are not in the same situation as me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;frequently fragmented sleep, with naps, and longer sleep durations that get interrupted (in my case by the dog)&lt;/li&gt;
&lt;li&gt;already own an Oura ring&lt;/li&gt;
&lt;li&gt;are obsessed with accurate sleep debt tracking in particular&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all my ridiculous sleep setup is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;wear both Apple Watch and Oura Ring (redundancy)&lt;/li&gt;
&lt;li&gt;pay for &lt;a href=&quot;https://support.ouraring.com/hc/en-us/articles/4409086524819-Oura-Membership#01JA5ZRDC9D69MK6WY2ZMD9YKC&quot;&gt;Oura Membership&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;pay for &lt;a href=&quot;https://www.risescience.com&quot;&gt;Rise&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        I Renewed My Oura Membership Subscription

        https://blog.martin-haehnel.de/2025/06/17/oura-renewal/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1299 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/17/dailydogo1299/" />
      <updated>2025-06-17T16:50:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/17/dailydogo1299/</id>
      <content type="html">&lt;p&gt;DailyDogo 1299 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan in a corner next to couch, resting her head on a couple of dog toys and watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1299-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1299 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1298 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/16/dailydogo1298/" />
      <updated>2025-06-16T17:10:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/16/dailydogo1298/</id>
      <content type="html">&lt;p&gt;DailyDogo 1298 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking on a sidewalk, leash taut, trying to get closer to a seagull a little bit further away (maybe 20m or so).&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1298-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1298 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Kardex - A Piece Of Analog Information Organisation Tech



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/15/kardex/" />
      <updated>2025-06-15T18:50:51Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/15/kardex/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-16 - slightly edited the opening paragraph and fixed the broken CC-By line of the image), also fixed a couple of things in the list of links&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Probably because I like notes systems and hold a master&#39;s degree in history of science and technology (with a strong &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Latourian bend&lt;/a&gt;), I always had a fascination with the pre-digital tools used for organizing information. Even though I myself am as digital as they get when it comes to organizing my own stuff, I like the specific aesthetic the index card carries and the combination of physicality and industrialization of the technology is very fun to think about and juxtapose with our modern times.&lt;/p&gt;
&lt;p&gt;Anyways, a Kardex was a filing system for index cards that revealed a margin of such a card, making it easier to quickly visually scan for the right card without the need to flip through them one by one.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An old steel kardex, with one drawer pulled out, revealing a bunch of index cards. The margins of the cards are visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-06-15-kardex-wikipedia.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;(&lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/&quot;&gt;CC-BY 2.0&lt;/a&gt; , &lt;a href=&quot;https://commons.wikimedia.org/wiki/File:Old_kardex_file_cabinet.jpg&quot;&gt;according to Wikipedia&lt;/a&gt;, Source: &lt;a href=&quot;https://flickr.com/photos/93001633@N00/2915039665&quot;&gt;https://flickr.com/photos/93001633@N00/2915039665&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Here are some links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wikipedia: &lt;a href=&quot;https://en.wikipedia.org/wiki/Visible_file&quot;&gt;Visible file&lt;/a&gt; - Visible File was another name for these kinds of systems.&lt;/li&gt;
&lt;li&gt;A company that sold Kardexes until the early 2010s, it seems, Was American Office Solutions Inc. Their website is preserved on &lt;a href=&quot;https://web.archive.org/web/20170317172941/http://www.recordsystems.net/index-kardex.html&quot;&gt;Web.Archive.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://uwlittlemags.tumblr.com/post/42038092015/retroconversion-of-the-kardex&quot;&gt;A tumblr post from 2013&lt;/a&gt; (&lt;a href=&quot;https://web.archive.org/web/20250616090519/https://uwlittlemags.tumblr.com/post/42038092015/retroconversion-of-the-kardex&quot;&gt;Archive&lt;/a&gt;), depicting a more or less contemporary use of a Kardex. Courtesy of the &lt;a href=&quot;https://www.library.wisc.edu/specialcollections/collections/little-magazine-collection//&quot;&gt;Little Magazine Collection&lt;/a&gt; (Wisconsin–Madison Memorial Library)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=eQWAZ9yQaAY&quot;&gt;A - regrettably - AI-generated video&lt;/a&gt; from the Kardex Group itself (which still exists to this day) about its early history&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.ebay.de/itm/306346426128?mkevt=1&amp;amp;mkcid=1&amp;amp;mkrid=707-53477-19255-0&amp;amp;campid=5338722076&amp;amp;customid=&amp;amp;toolid=10050&quot;&gt;Ebay Posting With Some Pics Of (part of) a Kardex system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Some ads:
&lt;ul&gt;
&lt;li&gt;ebid (whatever that is): &lt;a href=&quot;https://www.ebid.net/ca/for-sale/1956-remington-rand-kardex-visible-ad-on-the-inside-159189515.htm&quot;&gt;Take it from a man on the inside...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ebay: &lt;a href=&quot;https://www.ebay.com/itm/234459815460&quot;&gt;Ford Dealer&#39;s Kardex&lt;/a&gt;, &lt;a href=&quot;https://web.archive.org/web/20250615202446/https://www.ebay.com/itm/234459815460&quot;&gt;Archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ebay: &lt;a href=&quot;https://www.ebay.com/itm/334359251607&quot;&gt;Ford Dealer&#39;s Kardex II&lt;/a&gt;, &lt;a href=&quot;https://web.archive.org/web/20250615202613/https://www.ebay.com/itm/334359251607&quot;&gt;Archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ebay: &lt;a href=&quot;https://www.ebay.com/itm/334359251186&quot;&gt;Ford Dealer&#39;s Kardex III&lt;/a&gt;, &lt;a href=&quot;https://web.archive.org/web/20250615202717/https://www.ebay.com/itm/334359251186&quot;&gt;Archive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;flickr: potato quality of a double page ad &lt;a href=&quot;https://www.flickr.com/photos/agenbyte/2932386688/sizes/o/&quot;&gt;Send For The Kardex Man&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        The Kardex - A Piece Of Analog Information Organisation Tech

        https://blog.martin-haehnel.de/2025/06/15/kardex/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Few Little Tools To Figure Out Colors For A Website



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/15/a-few-color-tools/" />
      <updated>2025-06-15T18:42:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/15/a-few-color-tools/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-21 - added a few more links&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Just a quick note about a few tools that help me figure out colors that have enough contrast between each other to meet AA or AAA for the &lt;a href=&quot;https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html&quot;&gt;Web Content Accessibility Minimum Contrast Guidelines&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.learnui.design/tools/accessible-color-generator.html&quot;&gt;The Accessible Color Generator from Learn UI Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://contrast-grid.eightshapes.com&quot;&gt;The Contrast Grid By EightShapes/Directed Edges&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.canva.com/colors/color-wheel/&quot;&gt;Canva Color wheel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rgbtohex.net&quot;&gt;RGB To HEX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Robb Knight has a &lt;a href=&quot;https://rknight.me/intersect/web/toolkit/&quot;&gt;Web Toolkit&lt;/a&gt; that includes some links to color tools, I like https://randoma11y.com a lot&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://colorffy.com/palette-generator?colors=580cc0-44128c-31125c-1d0f30-000000&quot;&gt;Colorffy Palette&lt;/a&gt; - very pleasant to use color palette generator&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        A Few Little Tools To Figure Out Colors For A Website

        https://blog.martin-haehnel.de/2025/06/15/a-few-color-tools/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1297 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/15/dailydogo1297/" />
      <updated>2025-06-15T17:55:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/15/dailydogo1297/</id>
      <content type="html">&lt;p&gt;DailyDogo 1297 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan checking out a float with an excavator on it that is swimming in the waters around the Pikisaari island in Oulu. There is lots of nature but also an industrial area in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1297-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1297 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1296 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/14/dailydogo1296/" />
      <updated>2025-06-14T20:04:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/14/dailydogo1296/</id>
      <content type="html">&lt;p&gt;DailyDogo 1296 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan relaxing on her balcony dog bed. There are some plants in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1296-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1296 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hundred Rabbits



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/14/100-rabbits/" />
      <updated>2025-06-14T12:18:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/14/100-rabbits/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Hundred Rabbits is an artist collective that documents low-tech solutions with the hope of building a more resilient future. We live and work aboard a 10 m sailboat named Pino in remote parts of the world to learn more about how technology degrades beyond the shores of the western world.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://100r.co/site/about.html&quot;&gt;From their about page.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Very cool website (I&#39;d call it a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/digital-garden.html&quot;&gt;Digital Garden&lt;/a&gt;) about all kinds of things.&lt;/p&gt;
&lt;p&gt;I feel like I had seen this before in another life, but maybe I am wrong. Regardless. Got added to my feed reader immediately.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Hundred Rabbits

        https://blog.martin-haehnel.de/2025/06/14/100-rabbits/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1295 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/13/dailydogo1295/" />
      <updated>2025-06-13T19:57:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/13/dailydogo1295/</id>
      <content type="html">&lt;p&gt;DailyDogo 1295 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan looking down from a balcony, photographed over her shoulder.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1295-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1295 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          didyoudoit.lol - Some thoughts about its future



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/13/didyoudoit-going-forward/" />
      <updated>2025-06-13T15:15:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/13/didyoudoit-going-forward/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-06-16 - fixed a typo (&amp;quot;didyoudid&amp;quot;) in the title of the post /o&#92;&lt;/li&gt;
&lt;li&gt;2025-08-29 - added a short section about my moving on from OMG.lol and what that means for didyoudoit&lt;/li&gt;
&lt;li&gt;2025-09-01 - made a note that didyoudoit got a logo in the end&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;This is just a short note to let anyone interested in &lt;a href=&quot;https://www.didyoudoit.lol&quot;&gt;my little accountability project&lt;/a&gt; know where things are headed.&lt;/p&gt;
&lt;h3 id=&quot;first-things-first-didyoudoit-isn-t-going-anywhere-anytime-soon&quot;&gt;First things first: &lt;em&gt;didyoudoit&lt;/em&gt; isn’t going anywhere anytime soon.&lt;/h3&gt;
&lt;p&gt;The plan is to keep it running for at least a full year. The first thread was posted on &lt;strong&gt;2025-03-17&lt;/strong&gt;, so I’ll continue until the week of &lt;strong&gt;17 March 2026&lt;/strong&gt; &lt;s&gt;- with the usual planning thread on &lt;strong&gt;Monday the 16th&lt;/strong&gt; and the review thread on &lt;strong&gt;Friday the 20th&lt;/strong&gt;. I’m not making any promises beyond that. It was always an experiment, and maybe by then it will have run its course.&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;The forum will stay online until 2026-03-22. But I won&#39;t be posting new threads. More info can be found in &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/28/im-ascheregen/&quot;&gt;this post&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am sad to say: I see no way to keep the lights on over there. I had &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/13/didyoudoit-going-forward/&quot;&gt;originally said didyoudoit would stick around until the week of 17 March 2026&lt;/a&gt;, but I do not think this is the right thing to do anymore. It had become somewhat of an empty bar in recent weeks, anyway. So this is what is going to happen: The forum will stay up until said date (so you have ample time to copy or delete any of your old posts), but I am not going to post new threads anymore. After 2026-03-22 the forum and all it&#39;s data will be deleted.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;i-ve-had-to-acknowledge-my-limited-capacity-for-side-projects&quot;&gt;I’ve had to acknowledge my limited capacity for side projects.&lt;/h3&gt;
&lt;p&gt;I can keep posting threads, share my own plans and reviews, drop a few links elsewhere, and occasionally remind people in the forum - if they want that. But I’m not a content-producing machine. I had initially thought about adding a “resources” section with experiment ideas, but even writing a couple of paragraphs per thread quickly became too much.&lt;/p&gt;
&lt;h2 id=&quot;i-d-really-like-a-logo-for-didyoudoit&quot;&gt;I’d really like a logo for &lt;em&gt;didyoudoit&lt;/em&gt;.&lt;/h2&gt;
&lt;p&gt;I know it’s a bit silly to commission one for such a small side project - but I’d still love to have it. That’s one of the only real goals for &lt;em&gt;didyoudoit&lt;/em&gt;, aside from keeping the threads going: &lt;strong&gt;get a nice logo made&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;UPDATE: Didyoudoit did receive a logo by the very talented &lt;a href=&quot;https://www.andycarolan.com&quot;&gt;Andy Carolan&lt;/a&gt; no less!&lt;/p&gt;
&lt;p&gt;With white logo text:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A logo made up of two crayons with smiling faces, one is shaped like a question mark. Next to them is the text &amp;amp;quot;Did You Do It?&amp;amp;quot; in white.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/eb52d5003514087bb46e6c3bebd4e20e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;With black logo text:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A logo made up of two crayons with smiling faces, one is shaped like a question mark. Next to them is the text &amp;amp;quot;Did You Do It?&amp;amp;quot; in black.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/153de77994b33b4ee08dcd76cc34e97b.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Only the logo:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A logo made up of two crayons with smiling faces, one is shaped like a question mark.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/87dd8c9cade1f32d2bdc70a82c73da69.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The font used is &lt;a href=&quot;https://www.hvdfonts.com/fonts/mikado&quot;&gt;Mikado Black&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;beyond-that-nothing-else-is-planned&quot;&gt;Beyond that, nothing else is planned.&lt;/h2&gt;
&lt;p&gt;I’m happy to keep this going for the full year and will reevaluate after that. I’m extremely grateful to everyone who has tried this low-barrier accountability forum with me. It’s a weird little idea, and it takes real effort to plan and review your week - let alone post about it and maybe even write an update midweek. So if you’ve ever participated, in any way: &lt;strong&gt;thank you&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; In the beginning, I had grand visions of &lt;em&gt;didyoudoit&lt;/em&gt; growing into a general personal productivity forum, with people posting links, questions, ideas, and more. And honestly? It still could - or it could turn into something else entirely. If you’d like to help bring it to life: it’s simple. &lt;strong&gt;Just post your thing.&lt;/strong&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        didyoudoit.lol - Some thoughts about its future

        https://blog.martin-haehnel.de/2025/06/13/didyoudoit-going-forward/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1294 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/12/dailydogo1294/" />
      <updated>2025-06-12T17:39:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/12/dailydogo1294/</id>
      <content type="html">&lt;p&gt;DailyDogo 1294 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying outside on a bench-like structure that is built into the pedestrian way next to a canal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1294-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1294 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1293 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/11/dailydogo1293/" />
      <updated>2025-06-11T20:44:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/11/dailydogo1293/</id>
      <content type="html">&lt;p&gt;DailyDogo 1293 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan in her dog bed, playing with a man (me!) wearing a wireless headset. There are a few dog toys next to her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1293-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1293 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Mortal Ape (Quote)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/10/mortal-ape-quote/" />
      <updated>2025-06-10T20:37:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/10/mortal-ape-quote/</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;You are a mortal ape and, soon enough, you will be dead. You will not be remembered.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;(Rachel E. and Ross G. Menzies: &amp;quot;Mortals: How the Fear of Death Shaped Human Society&amp;quot;)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I can&#39;t vouch for &lt;a href=&quot;https://www.themortalatheist.com/blog/mortals-rachel-and-ross-menzies&quot;&gt;the site&lt;/a&gt; I stumbled upon this quote while looking for something else, nor &lt;a href=&quot;https://app.thestorygraph.com/books/3f47ca85-e074-4da4-944b-498076fef7ee&quot;&gt;the book&lt;/a&gt; it was taken from, but I can tell you that this quote hit me like a ton of bricks just now, which is why I wanted to share it.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A Mortal Ape (Quote)

        https://blog.martin-haehnel.de/2025/06/10/mortal-ape-quote/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          11tybundle.dev - HowTo&#39;s, Tips, and Tricks for your Eleventy site



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/10/11tybundle-dev/" />
      <updated>2025-06-10T19:56:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/10/11tybundle-dev/</id>
      <content type="html">&lt;p&gt;If you&#39;re ever looking for a way to solve a thing with Eleventy (&lt;a href=&quot;https://blog.martin-haehnel.de/tags/eleventy/&quot;&gt;and I have not yet written about it&lt;/a&gt;): Look no further than &lt;a href=&quot;https://11tybundle.dev&quot;&gt;11tybundly.dev&lt;/a&gt;! This is a great resource for people building website using Eleventy.&lt;/p&gt;
&lt;p&gt;And wouldn&#39;t you know it? Your&#39;s truly also has his own author&#39;s page, which makes me slightly proud, tbh. :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://11tybundle.dev/authors/martin-haehnel/&quot;&gt;Check it out!&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        11tybundle.dev - HowTo&#39;s, Tips, and Tricks for your Eleventy site

        https://blog.martin-haehnel.de/2025/06/10/11tybundle-dev/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1292 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/10/dailydogo1292/" />
      <updated>2025-06-10T19:48:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/10/dailydogo1292/</id>
      <content type="html">&lt;p&gt;DailyDogo 1292 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan, relaxing on a patch of uncut grass. There are some flowering dandelions visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1292-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1292 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1291 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/09/dailydogo1291/" />
      <updated>2025-06-09T20:06:52Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/09/dailydogo1291/</id>
      <content type="html">&lt;p&gt;DailyDogo 1291 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi, next to a couch with a few toys. She looks like she&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1291-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1291 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1290 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/08/dailydogo1290/" />
      <updated>2025-06-09T10:35:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/08/dailydogo1290/</id>
      <content type="html">&lt;p&gt;DailyDogo 1290 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on an armchair, watching straight to the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1290-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1290 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Adam Ragusea About Lying, Shame, And &quot;AI&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/09/ragusea-quote-ai-unquote/" />
      <updated>2025-06-09T09:12:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/09/ragusea-quote-ai-unquote/</id>
      <content type="html">&lt;div id=&quot;DwAPwbcq5GQ&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/DwAPwbcq5GQ&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;Adam Ragusea recently published a video (see above) about AI and what it might mean to society from a journalistic perspective.&lt;/p&gt;
&lt;p&gt;Here&#39;s my 2 cents as a &amp;quot;tentative pro the tech, but con the unregulated industry&amp;quot; kind of person&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/09/ragusea-quote-ai-unquote/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I continue to think the main problem is tech-capitalism and using LLMs for things it is not good at or that one is not competent in to vet the output - this is much harder for something you can&#39;t run unit tests on like natural language!&lt;/li&gt;
&lt;li&gt;I appreciated this perspective for how it weaved together the lying-shame dynamic of politics and public life at large, journalistic ethics, and AI as an &lt;a href=&quot;https://aworkinglibrary.com/writing/accountability-sinks&quot;&gt;accountability sink&lt;/a&gt; in this regard.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;See my last &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/&quot;&gt;A Personal Note On My Interest In LLMs&lt;/a&gt; if you want to know more. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/09/ragusea-quote-ai-unquote/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Adam Ragusea About Lying, Shame, And &quot;AI&quot;

        https://blog.martin-haehnel.de/2025/06/09/ragusea-quote-ai-unquote/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Anonymous Pro - A Nice Monospaced Font



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/08/anonymous-pro/" />
      <updated>2025-06-08T19:49:26Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/08/anonymous-pro/</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/08/typo-town/&quot;&gt;Speaking of fonts&lt;/a&gt;: I have started to really like a monospaced font called &lt;a href=&quot;https://www.marksimonson.com/fonts/view/anonymous/&quot;&gt;Anonymous Pro&lt;/a&gt;, which is why it will in all likelihood become the monospaced font of my blog.&lt;/p&gt;
&lt;p&gt;The best part is that it is also available on &lt;a href=&quot;https://fonts.bunny.net/family/anonymous-pro&quot;&gt;Bunny Fonts&lt;/a&gt;!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Anonymous Pro - A Nice Monospaced Font

        https://blog.martin-haehnel.de/2025/06/08/anonymous-pro/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Typo Town - A Helpful List Of Good Free Fonts



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/08/typo-town/" />
      <updated>2025-06-08T19:29:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/08/typo-town/</id>
      <content type="html">&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;https://typo.town/google-fonts&lt;/p&gt;
&lt;p&gt;Wading through thousands of free fonts can be a daunting endeavor, so here are (in my opinion) some of the most versatile and best-designed typefaces on Google Fonts.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I am not really a font nerd, but &lt;a href=&quot;https://www.nicksimson.com&quot;&gt;Nick Simson&lt;/a&gt; - a designer from New Mexico that I know through OMG.LOL - makes the daunting task of figuring out a nice font for your website a little easier by giving you a subset of nice fonts to choose from. I found this pretty helpful as I am pondering what font to use for my blog going forward.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://typo.town/google-fonts&quot;&gt;Here&#39;s Nick&#39;s list of fonts.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;P.S.: You don&#39;t need to use Google Fonts! You can also use the privacy friendly &lt;a href=&quot;https://fonts.bunny.net&quot;&gt;Bunny Fonts&lt;/a&gt; which is a drop-in alternative!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Typo Town - A Helpful List Of Good Free Fonts

        https://blog.martin-haehnel.de/2025/06/08/typo-town/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1289 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/07/dailydogo1289/" />
      <updated>2025-06-07T19:23:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/07/dailydogo1289/</id>
      <content type="html">&lt;p&gt;DailyDogo 1289 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi resting on a wooden platform.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1289-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1289 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1288 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/06/dailydogo1288/" />
      <updated>2025-06-06T20:55:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/06/dailydogo1288/</id>
      <content type="html">&lt;p&gt;DailyDogo 1288 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi eating ice cream for dogs.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1288-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1288 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Laravel Herd (Local Laravel Dev Env)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/06/laravel-herd/" />
      <updated>2025-06-06T20:52:12Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/06/laravel-herd/</id>
      <content type="html">&lt;p&gt;I had mentioned it before, but I never made a post about it: &lt;a href=&quot;https://herd.laravel.com&quot;&gt;Laravel Herd&lt;/a&gt; is a very practical developer tool that sets up new projects super quickly and easily. It includes everything you&#39;d need for a new project:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;installs &lt;a href=&quot;https://github.com/nvm-sh/nvm&quot;&gt;nvm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;installs a PHP&lt;/li&gt;
&lt;li&gt;the PHP even includes the most used PHP extensions like XDebug&lt;/li&gt;
&lt;li&gt;installs a laravel starter kit (you can even &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/05/unstyled-laravel-starter/&quot;&gt;use custom ones&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;makes the project available under a nice domain like &lt;code&gt;sideproject.test&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;it can secure it creating a certificate for &lt;code&gt;https&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all it shortens the distance from &amp;quot;I want to start a Laravel project&amp;quot; to actually starting it by a lot. I recommend it whole heartedly over something like a docker container or any of the .&lt;/p&gt;
&lt;p&gt;P.S.: There is a kind of costly payed pro version of Herd, but it&#39;s not essential IMHO.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Laravel Herd (Local Laravel Dev Env)

        https://blog.martin-haehnel.de/2025/06/06/laravel-herd/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1287 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/05/dailydogo1287/" />
      <updated>2025-06-05T19:25:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/05/dailydogo1287/</id>
      <content type="html">&lt;p&gt;DailyDogo 1287 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi making a crazy face while playing.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1287-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1287 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          An Unstyled Laravel Starter Kit



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/05/unstyled-laravel-starter/" />
      <updated>2025-06-05T16:39:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/05/unstyled-laravel-starter/</id>
      <content type="html">&lt;p&gt;My favorite framework is called Laravel and at the moment I&#39;m using it to run a bunch of experiments I call &amp;quot;POC training&amp;quot;. POC stands for proof of concept and the idea behind POC training is to train to get from zero to a proof of concept implementation in limited time.&lt;/p&gt;
&lt;p&gt;The POCs I&#39;m trying to create are often simple CRUD apps. Like a bookmarking app or similar.&lt;/p&gt;
&lt;p&gt;What is kind of annoying about &lt;a href=&quot;https://laravel.com/starter-kits&quot;&gt;Laravel&#39;s own starter kits&lt;/a&gt; is that they got somewhat bloaty. They include &lt;a href=&quot;https://tailwindcss.com&quot;&gt;tailwindcss&lt;/a&gt; now by default and their starter templates get more in the way than they help if you&#39;re not intimately familiar with tailwind, flux (the component library of livewire, another tool you may not need), etc.&lt;/p&gt;
&lt;p&gt;I was very happy that I found &lt;a href=&quot;https://github.com/tnylea/laravel-new&quot;&gt;this list of custom starter kits by the community&lt;/a&gt; and in it this &lt;a href=&quot;https://github.com/javdome/unstyled-blade-starter-kit&quot;&gt;Unstyled Blade Starter Kit&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;From Their Readme&lt;/p&gt;
&lt;p&gt;Our Laravel + Unstyled Blade starter kit provides a lightweight and flexible foundation for building Laravel applications with Blade, without any predefined styles. It includes a built-in authentication system and provides unstyled views and layouts, allowing you to customize them as you wish. You can install your favorite libraries and CSS frameworks, such as Bootstrap, Tailwind, NES.css, Alpine, etc., or choose not to use any framework at all and design everything from scratch.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;If you&#39;re using &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/06/laravel-herd/&quot;&gt;Herd&lt;/a&gt; to develop Laravel locally it&#39;s incredibly easy to get started.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        An Unstyled Laravel Starter Kit

        https://blog.martin-haehnel.de/2025/06/05/unstyled-laravel-starter/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1286 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/04/dailydogo1286/" />
      <updated>2025-06-04T19:42:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/04/dailydogo1286/</id>
      <content type="html">&lt;p&gt;DailyDogo 1286 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sleeping on a guest bed with her head right against the sliding door which is right next to the bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1286-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1286 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Looking At A New Router (MikroTik Chateau 5G)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/04/looking-at-new-router-mikrotik-chateau-5g/" />
      <updated>2025-06-04T12:14:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/04/looking-at-new-router-mikrotik-chateau-5g/</id>
      <content type="html">&lt;p&gt;We currently use a ZTE MC888 Pro 5G, that I bought for an enormous amount of money (more than 500€) from the internet provider&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/04/looking-at-new-router-mikrotik-chateau-5g/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;, but it sadly has problems with dropping 5g connections and then refusing to reconnect. It often takes multiple router restarts. So I&#39;m looking to replace this one with something better.&lt;/p&gt;
&lt;p&gt;The current candidate is a MikroTik Chateau 5G model. Either &lt;a href=&quot;https://mikrotik.com/product/chateau5gr16&quot;&gt;an R16&lt;/a&gt; (slightly older) or &lt;a href=&quot;https://mikrotik.com/product/chateau_5g_ax&quot;&gt;the ax&lt;/a&gt;.  I like them because it lets me also try out some homelab stuff as it is beefy enough to run containers, which sounds cool.&lt;/p&gt;
&lt;p&gt;Also here are two delightful videos about their chateau ranges:&lt;/p&gt;
&lt;div id=&quot;_H0hlnbY5KA&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/_H0hlnbY5KA&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div id=&quot;nm9RjNbZJjc&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/nm9RjNbZJjc&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&amp;quot;It&#39;ll be easy and a safe choice&amp;quot;, I thought... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/04/looking-at-new-router-mikrotik-chateau-5g/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Looking At A New Router (MikroTik Chateau 5G)

        https://blog.martin-haehnel.de/2025/06/04/looking-at-new-router-mikrotik-chateau-5g/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1285 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/03/dailydogo1285/" />
      <updated>2025-06-03T19:50:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/03/dailydogo1285/</id>
      <content type="html">&lt;p&gt;DailyDogo 1285 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi resting her head on some dog toys.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1285-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1285 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          John Berger&#39;s Ways Of Seeing



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/03/berger-ways-of-seeing/" />
      <updated>2025-06-03T16:44:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/03/berger-ways-of-seeing/</id>
      <content type="html">&lt;p&gt;Inspired by recent discussions in the OMG.LOL &lt;s&gt;discord&lt;/s&gt; Chat Network. I have spent a considerable amount of time in reading Benjamin&#39;s &amp;quot;The Work of Art in the Age of Mechanical Reproduction&amp;quot; through a &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Latourian&lt;/a&gt; lens.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/John_Berger&quot;&gt;John Berger&lt;/a&gt; does a great job of gently introducing some of Benjamin&#39;s ideas that seem so apt in a time where reproduction has become an even more integral part of late modernity. Here&#39;s  the first episode of the four episode BBC series from the 1970ies called &amp;quot;Ways Of Seeing&amp;quot;:&lt;/p&gt;
&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Content Warning&lt;/summary&gt;
&lt;p&gt;There is a depiction of an execution around minute 20.&lt;/p&gt;
&lt;/details&gt;
&lt;div id=&quot;Xdw3xRrBmlc&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/Xdw3xRrBmlc&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
</content>
      
      <echofeed:content type="html">
        John Berger&#39;s Ways Of Seeing

        https://blog.martin-haehnel.de/2025/06/03/berger-ways-of-seeing/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          An Obsidian Template To Create A File At The Right Location



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/03/obsidian-templater-file-creation-template/" />
      <updated>2025-06-03T13:45:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/03/obsidian-templater-file-creation-template/</id>
      <content type="html">&lt;p&gt;In my blog, this post you&#39;re reading right now can be found at the following path in the repo:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;content/blog/2025/06/03/obsidian-templater-file-creation-template.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yesterday&#39;s &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/02/dailydogo1284/&quot;&gt;dailydogo1284&lt;/a&gt; has the following path:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;content/blog/2025/06/02/dailydogo1284.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So all my posts are living in a tree like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;blog
&lt;ul&gt;
&lt;li&gt;year
&lt;ul&gt;
&lt;li&gt;month
&lt;ul&gt;
&lt;li&gt;day
&lt;ul&gt;
&lt;li&gt;post&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/&quot;&gt;I remove the &amp;quot;blog&amp;quot; part from the path and let eleventy slugify it&amp;period;&lt;/a&gt; Et voilà.&lt;/p&gt;
&lt;p&gt;I am using &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; as my editor for blog posts. And I don&#39;t want to create all these directories every day just to write and publish a little note. So I automated it away using an Obsidian Plugin called &lt;a href=&quot;https://github.com/SilentVoid13/Templater&quot;&gt;Templater&lt;/a&gt;. Here&#39;s the template:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
title: &amp;lt;%tp.date.now(&amp;quot;YYYYMMDDHHmmss&amp;quot;)%&amp;gt;
aliases: &amp;lt;%tp.date.now(&amp;quot;YYYYMMDDHHmmss&amp;quot;)%&amp;gt;
draft: true
date: &amp;lt;% tp.file.creation_date(&amp;quot;YYYY-MM-DD[T]HH:mm:ssZ&amp;quot;) %&amp;gt;
lastmod: &amp;lt;% tp.file.last_modified_date(&amp;quot;YYYY-MM-DD[T]HH:mm:ssZ&amp;quot;) %&amp;gt;
tags:
  - Memories
---

&amp;lt;%*
const moment = tp.date.now(&amp;quot;YYYY/MM/DD&amp;quot;);
const filePath = `content/blog/${moment}/${tp.date.now(&amp;quot;YYYYMMDDHHmmss&amp;quot;)}.md`;
await tp.file.move(filePath);
%&amp;gt;

&amp;lt;% tp.file.cursor(0) %&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If I create a new file using the &amp;quot;Templater: Create new note from template&amp;quot; command, I can basically start writing immediately.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        An Obsidian Template To Create A File At The Right Location

        https://blog.martin-haehnel.de/2025/06/03/obsidian-templater-file-creation-template/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Publishing More Quick Notes



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/02/more-quicknotes/" />
      <updated>2025-06-02T19:36:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/02/more-quicknotes/</id>
      <content type="html">&lt;p&gt;I have had - on and off - a little series called &lt;a href=&quot;https://blog.martin-haehnel.de/tags/QuickNote/&quot;&gt;Quick Notes&lt;/a&gt; that share just that: A quick note. It could be about a thing I found on the internet, or something I read or something completely different.
The idea is to just get it out there. Since this blog is also a &lt;a href=&quot;https://blog.martin-haehnel.de/garden/&quot;&gt;Digital Garden&lt;/a&gt;, nothing stops me from growing a quick note into a full blog post later on.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Publishing More Quick Notes

        https://blog.martin-haehnel.de/2025/06/02/more-quicknotes/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1284 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/02/dailydogo1284/" />
      <updated>2025-06-02T19:06:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/02/dailydogo1284/</id>
      <content type="html">&lt;p&gt;DailyDogo 1284 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying half next to and half under a couch, looking a little sleepy away from the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1284-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1284 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1283 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/06/01/dailydogo1283/" />
      <updated>2025-06-01T20:09:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/06/01/dailydogo1283/</id>
      <content type="html">&lt;p&gt;DailyDogo 1283 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting on a platform in a boggy landscape. There is a little lake in the background and a small forest as well.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1283-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1283 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1282 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/31/dailydogo1282/" />
      <updated>2025-05-31T19:38:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/31/dailydogo1282/</id>
      <content type="html">&lt;p&gt;DailyDogo 1282 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi in a swim vest sitting in a rowing boat. The weather looks quite rainy and dog looks quite wet.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1282-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1282 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1281 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/30/dailydogo1281/" />
      <updated>2025-05-30T21:43:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/30/dailydogo1281/</id>
      <content type="html">&lt;p&gt;DailyDogo 1281 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking over duckboards through a stony field.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1281-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1281 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1280 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/29/dailydogo1280/" />
      <updated>2025-05-29T20:07:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/29/dailydogo1280/</id>
      <content type="html">&lt;p&gt;DailyDogo 1280 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on a small single bed, facing but looking away from the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1280-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1280 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Implement Favs In Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/" />
      <updated>2025-05-29T18:52:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/</id>
      <content type="html">&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;⚠️ Heads-Up! ⚠️&lt;/p&gt;
&lt;p&gt;🚧 Even though the functionality now exists and works, &lt;em&gt;this post&lt;/em&gt; itself is a work-in-progress. 🚧&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;An easy way to implement favs - favorites, likes, kudos or whatever you want to call them - is by using a little bit of HTML, CSS and JS, a simple API with two routes and a key-value store.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;overview&quot;&gt;Overview&lt;/h3&gt;
&lt;p&gt;What is a simple fav system at its essence? Under every post is an interactive element, that allows readers to &amp;quot;fav&amp;quot; a post. &amp;quot;Faving&amp;quot; is an anonymous action that just increments - or in the case of &amp;quot;unfaving&amp;quot; decrements a counter on that post.&lt;/p&gt;
&lt;p&gt;Anyone who&#39;s reading a post can click a button and the counter is either going up by one, or down by one.&lt;/p&gt;
&lt;p&gt;We remember if somebody has faved a post by writing to their local storage. That also means that we don&#39;t need to save any data about the user. Which is good from a privacy perspective.&lt;/p&gt;
&lt;h3 id=&quot;key-value-store&quot;&gt;Key Value Store&lt;/h3&gt;
&lt;p&gt;There isn&#39;t lots to say about this one, except we should talk about the question how do we even refer to a post, we need some kind of ID. But in eleventy we do not have a database table with rows for our posts we could use. Instead we will use the url (minus the domain). So our KV-Store would looks something like this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;/2025/05/29/favs-in-eleventy/: {count: 0}&lt;/li&gt;
&lt;li&gt;/2025/05/28/dailydogo1279/: {count: 2}&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;fav-api&quot;&gt;Fav-API&lt;/h3&gt;
&lt;p&gt;We will create two endpoints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GET /api/favs/get/{:id}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So for example: &lt;code&gt;GET /api/favs/get/2025/05/29/favs-in-eleventy/&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/favs/toggle {id: id, action: fav or unfav}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So for example: &lt;code&gt;POST /api/favs/toggle&lt;/code&gt; with this JSON:&lt;/p&gt;
&lt;pre class=&quot;language-JSON&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-JSON&quot;&gt;{
	&quot;id&quot;: &quot;/2025/05/29/favs-in-eleventy/&quot;,
	&quot;action&quot;: &quot;fav&quot; //or &quot;unfav&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The get endpoint return the current count for a given ID, so we can display it and the post creates and/or either increments or decrements the current favcount for a given ID.&lt;/p&gt;
&lt;h3 id=&quot;frontend&quot;&gt;Frontend&lt;/h3&gt;
&lt;h5 id=&quot;template&quot;&gt;Template&lt;/h5&gt;
&lt;p&gt;To show the fav button on all posts we just add it to the &lt;code&gt;post.njk&lt;/code&gt; which is used by default to display blogposts:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&amp;quot;post-footer&amp;quot;&amp;gt;
  &amp;lt;button data-fav-button title=&amp;quot;Fav this post!&amp;quot; class=&amp;quot;fav-button&amp;quot; aria-label=&amp;quot;Add to favorites&amp;quot;&amp;gt;
    &amp;lt;span class=&amp;quot;star&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;☆&amp;lt;/span&amp;gt;
    &amp;lt;span class=&amp;quot;count&amp;quot; aria-live=&amp;quot;polite&amp;quot;&amp;gt;0&amp;lt;/span&amp;gt;
  &amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;css&quot;&gt;CSS&lt;/h5&gt;
&lt;p&gt;Let&#39;s have a look at the css file first:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;:root&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;--gold-star&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; #f5c518&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.fav-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; pointer&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.2em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--color-gray-50&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inline-flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.2em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.fav-button .star&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.5em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;transition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; color 0.2s ease&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.fav-button.faved&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--gold-star&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.fav-button:hover&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.fav-button:hover .star&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--gold-star&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the post-footer class is in the main index.css file and looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Post Footer (favs) */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.post-footer&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;js&quot;&gt;JS&lt;/h5&gt;
&lt;p&gt;And here&#39;s the JavaScript we use to wire up the fav button:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;DOMContentLoaded&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;setupFavButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setupFavButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; button &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;.fav-button&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;button&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; postId &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;location&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;pathname&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;&#92;/$&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; localKey &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;fav_&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;postId&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; countEl &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; button&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;.count&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; starEl &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; button&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;.star&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;updateCount&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; res &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;/api/favs/get&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;postId&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; res&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;countEl&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; countEl&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;textContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;count&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;err&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Failed to fetch fav count&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;toggleFav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; faved &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; localStorage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;localKey&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; action &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; faved &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;unfav&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fav&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; res &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/api/favs/toggle&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;token literal-property property&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; postId&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; action &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; data &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; res&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;countEl&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; countEl&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;textContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;count&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token comment&quot;&gt;// update state&lt;/span&gt;
      localStorage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;localKey&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; action &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fav&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;false&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;updateVisual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;action &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;fav&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;err&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;Failed to toggle fav&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; err&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;updateVisual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;faved&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    button&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;classList&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;faved&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; faved&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;starEl&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; starEl&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;textContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; faved &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;★&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;☆&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;// initial state&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; faved &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; localStorage&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getItem&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;localKey&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;updateVisual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;faved&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;updateCount&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  button&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;click&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; toggleFav&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I will be using Cloudflare&#39;s tools, as this blog is (still) based on their developer platform, but it shouldn&#39;t be too hard to adapt this to your setup. Hopefully. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Implement Favs In Eleventy

        https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1279 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/28/dailydogo1279/" />
      <updated>2025-05-28T19:49:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/28/dailydogo1279/</id>
      <content type="html">&lt;p&gt;DailyDogo 1279 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on the floor (under a couch) with her tongue out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1279-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1279 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1278 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/27/dailydogo1278/" />
      <updated>2025-05-27T20:32:23Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/27/dailydogo1278/</id>
      <content type="html">&lt;p&gt;DailyDogo 1278 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi playing tug with a round, pink pig toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1278-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1278 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1277 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/26/dailydogo1277/" />
      <updated>2025-05-26T18:44:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/26/dailydogo1277/</id>
      <content type="html">&lt;p&gt;DailyDogo 1277 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting on a wooden platform next to a canal. There is a bridge in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1277-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1277 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1276 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/25/dailydogo1276/" />
      <updated>2025-05-25T19:33:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/25/dailydogo1276/</id>
      <content type="html">&lt;p&gt;DailyDogo 1276 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi walking on duckboards through a forest.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1276-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1276 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1275 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/24/dailydogo1275/" />
      <updated>2025-05-24T23:23:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/24/dailydogo1275/</id>
      <content type="html">&lt;p&gt;DailyDogo 1275 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi rubbing her back on a bunch of cut reeds next to the baltic sea shore.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1275-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1275 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1274 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/23/dailydogo1274/" />
      <updated>2025-05-23T19:45:37Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/23/dailydogo1274/</id>
      <content type="html">&lt;p&gt;DailyDogo 1274 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a balcony door. She just woke up when the photo was taken.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1274-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1274 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1273 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/22/dailydogo1273/" />
      <updated>2025-05-22T19:43:54Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/22/dailydogo1273/</id>
      <content type="html">&lt;p&gt;DailyDogo 1273 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi looking past a banister into a city park. There is a crow bird to her right and a bicycle rider to her left. In the distance a bridge is visible. &quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1273-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1273 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1272 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/21/dailydogo1272/" />
      <updated>2025-05-21T19:29:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/21/dailydogo1272/</id>
      <content type="html">&lt;p&gt;DailyDogo 1272 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi as far away as the leash would allow, on top of a kind of high wall (1 m or so), looking back. There is the baltic sea in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1272-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1272 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1271 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/20/dailydogo1271/" />
      <updated>2025-05-20T19:29:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/20/dailydogo1271/</id>
      <content type="html">&lt;p&gt;DailyDogo 1271 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi next to a beautiful bouquet of flowers.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1271-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1271 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1270 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/19/dailydogo1270/" />
      <updated>2025-05-19T19:35:23Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/19/dailydogo1270/</id>
      <content type="html">&lt;p&gt;DailyDogo 1270 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi resting. The photo was taken from below a stool and makes the dog look like it is melting into the floor somehow.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1270-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1270 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1269 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/18/dailydogo1269/" />
      <updated>2025-05-18T16:10:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/18/dailydogo1269/</id>
      <content type="html">&lt;p&gt;DailyDogo 1269 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a heap of shed fur.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1269-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1269 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1268 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/17/dailydogo1268/" />
      <updated>2025-05-17T21:17:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/17/dailydogo1268/</id>
      <content type="html">&lt;p&gt;DailyDogo 1268 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi playing dead in her dog bed. Her eyes white open just waiting for my call to jump up and fetch the toy. That last part is extra context not visible in the photo.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1268-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1268 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1267 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/16/dailydogo1267/" />
      <updated>2025-05-16T19:51:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/16/dailydogo1267/</id>
      <content type="html">&lt;p&gt;DailyDogo 1267 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to Erika Vikman merchandise, consisting of a patch and socks reading &quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1267-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1267 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1266 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/15/dailydogo1266/" />
      <updated>2025-05-15T18:37:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/15/dailydogo1266/</id>
      <content type="html">&lt;p&gt;DailyDogo 1266 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting on a low wall outside and looking past the camera. She is looking kind of tense.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1266-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1266 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1265 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/14/dailydogo1265/" />
      <updated>2025-05-14T20:12:59Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/14/dailydogo1265/</id>
      <content type="html">&lt;p&gt;DailyDogo 1265 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi looking into the camera while sitting on the floor.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1265-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1265 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1264 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/13/dailydogo1264/" />
      <updated>2025-05-13T19:45:36Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/13/dailydogo1264/</id>
      <content type="html">&lt;p&gt;DailyDogo 1264 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on the floor looking into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1264-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1264 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1263 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/12/dailydogo1263/" />
      <updated>2025-05-12T19:27:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/12/dailydogo1263/</id>
      <content type="html">&lt;p&gt;DailyDogo 1263 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting in her dog bed holding a dog toy with a cow pattern in her mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1263-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1263 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1262 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/11/dailydogo1262/" />
      <updated>2025-05-11T20:40:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/11/dailydogo1262/</id>
      <content type="html">&lt;p&gt;DailyDogo 1262 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi playing tug with a dog toy. The toy is a ball with many holes. You can see her teeth through the holes.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1262-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1262 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Make Eleventy Understand Obsidian-style Callouts



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/" />
      <updated>2025-05-11T20:40:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-05-11 - Created this note&lt;/li&gt;
&lt;li&gt;2025-05-12 - Fixed a misleading note about putting the content in between the &lt;code&gt;html_block&lt;/code&gt;s. The content tokens stay in their place. They are just getting cleaned up. Also added a couple more links and linked those solutions in the beginning correctly. I added codeblocks so that people can see how the markdown looks that leads to the callout examples in the end. I also fixed a couple of typos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I really like callouts as a concept.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; If you&#39;re unfamiliar, they are a way to make a part of a note or post stand out.&lt;/p&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;Like this!&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Because &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; is my blog editor, I wanted to make callouts work with &lt;a href=&quot;https://eleventy.dev&quot;&gt;eleventy&lt;/a&gt; - which is the static site generator I use.&lt;/p&gt;
&lt;p&gt;Now, there are a handful of solutions out there that do this already:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://rknight.me/blog/adding-githubstyle-markdown-alerts-to-eleventy/&quot;&gt;Adding Github-Style Markdown Alerts to Eleventy&lt;/a&gt; (this uses https://github.com/antfu/markdown-it-github-alerts)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eleventy-notes.sandroroth.com&quot;&gt;Eleventy Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eleventy notes had the most complete implementation of callouts, but it&#39;s not a plugin you can just use and &lt;a href=&quot;https://github.com/rothsandro/eleventy-notes/issues/73&quot;&gt;the licensing was unclear when I tried to solve this&lt;/a&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;So I made my own markdown-it&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; plugin. It&#39;s just one file and it re-uses (mostly) the message-box css file that comes with the &lt;a href=&quot;https://github.com/11ty/eleventy-base-blog/blob/main/css/message-box.css&quot;&gt;eleventy base blog&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;a-mini-tour-of-markdown-its-parsing-architecture&quot;&gt;A Mini-Tour Of markdown-its Parsing Architecture&lt;/h3&gt;
&lt;p&gt;Not only because I don&#39;t really understand it, but because we don&#39;t need super-deep understanding, we&#39;ll make this quick:&lt;/p&gt;
&lt;p&gt;markdown-it parses any text it is fed in multiple passes. And creates a token stream - an array of objects - that is then finally fed to the renderer to create HTML.&lt;/p&gt;
&lt;p&gt;Take this as an example:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; [!NOTE]+
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; Hello &lt;span class=&quot;token italic&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token content&quot;&gt;World&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The array created by vanilla markdown-it looks something like this:&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;children&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;softbreak&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello &quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;em_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;World&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;em_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&#92;nHello *World*&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, plugins can hook into this parsing cascade at any point and change the resultant array. You can, for example, add your own rule after all the blocks (e.g., block quotes, code blocks, ...) have been parsed. The array at this point in the parsing process looks therefore slightly simpler:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;children&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;softbreak&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello *World*&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&#92;nHello World&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note how the string &lt;code&gt;*World*&lt;/code&gt; is not yet parsed further.&lt;/p&gt;
&lt;p&gt;In our case, we want to replace these special blockquote tokens with HTML ourselves, so there is no need for any other rules to parse this block. We can do so by replacing the &lt;code&gt;blockquote_open&lt;/code&gt;/&lt;code&gt;blockquote_close&lt;/code&gt; tokens by using a token type called &lt;code&gt;html_block&lt;/code&gt; which skips all other rules and is fed to the renderer as is.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;So we turn the above into something like this:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;html_block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;details class=&#92;&quot;message-box&#92;&quot; open&gt;&amp;lt;summary&gt;Note&amp;lt;/summary&gt;&#92;n&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_open&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;children&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;softbreak&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Hello *World*&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;[!NOTE]+&#92;nHello *World*&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;paragraph_close&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;html_block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;/details&gt;&#92;n&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note that we are not parsing the markdown within the block - although we&#39;re going to strip the &lt;code&gt;[!NOTE]+&lt;/code&gt; part.&lt;/p&gt;
&lt;p&gt;Alright. So that&#39;s the plan. We are going to do exactly what I described in code. On top of what I have described here, we will also have to decide how we are going to replace the block exactly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;if the callout marker is just &lt;code&gt;[!NOTE]&lt;/code&gt; we replace it with a &lt;code&gt;div&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;if it is &lt;code&gt;[!NOTE]-&lt;/code&gt; we replace it with a &lt;code&gt;details&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;if it is &lt;code&gt;[!NOTE]+&lt;/code&gt; we replace it with a &lt;code&gt;details&lt;/code&gt; tag with the &lt;code&gt;open&lt;/code&gt; attribute&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;our-little-plugin&quot;&gt;Our little plugin&lt;/h3&gt;
&lt;p&gt;So here&#39;s the plugin &lt;code&gt;note-callout-plugin.js&lt;/code&gt; (which I just put in the repo root):&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;noteCalloutPlugin&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;md&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; regex &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^&#92;[&#92;!note&#92;]([+-]?)( +[^&#92;n&#92;r]+)?&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;core&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;ruler&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;after&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;note_callout&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; tokens &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; state&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; idx&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;idx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; openIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; closeIdx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; contentToken &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; openIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; closeIdx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;contentToken&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; match &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;regex&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;match&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;continue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; modifier &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; match&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// &quot;+&quot; or &quot;-&quot; or &quot;&quot;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; title &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;match&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Note&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; parsedTitle &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; md&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;renderInline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;title&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; wrapperTag &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; openAttr &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; summary &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;modifier &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;+&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; modifier &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        wrapperTag &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;details&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;modifier &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;+&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; openAttr &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot; open&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        summary &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;summary&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;parsedTitle&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;/summary&gt;&#92;n&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        summary &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;p class=&quot;callout-title&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;parsedTitle&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;/p&gt;&#92;n&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;openIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tag &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; wrapperTag&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;openIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;html_block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;openIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;wrapperTag&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt; class=&quot;message-box&quot;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;openAttr&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;summary&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;closeIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;tag &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; wrapperTag&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;closeIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;html_block&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;closeIdx&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;wrapperTag&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&gt;&#92;n&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

      contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; contentToken&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;regex&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findBlockquoteClose&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; idx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; idx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blockquote_close&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; idx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;findInlineTokenInBlockquote&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; startIdx&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; endIdx&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; startIdx &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; endIdx&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;type &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;inline&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; tokens&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Some notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the regex helps us find the specific kind of block quote we&#39;re trying to replace (&lt;code&gt;[!NOTE]&lt;/code&gt;; although we ignore capitalization as [!note] also works in Obsidian)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;md.core.ruler.after(&amp;quot;block&amp;quot;, &amp;quot;note_callout&amp;quot;, ...)&lt;/code&gt; this specifies when our new rule is run. After the block rules (including blockquotes)&lt;/li&gt;
&lt;li&gt;we use a &lt;code&gt;for&lt;/code&gt; loop as we want to iterate over the tokens, but we need to jump ahead as soon as we find the &lt;code&gt;blockquote_open&lt;/code&gt; token&lt;/li&gt;
&lt;li&gt;as soon as we do find the &lt;code&gt;blockquote_open&lt;/code&gt; token we search for the closing token (&lt;code&gt;findBlockquoteClose&lt;/code&gt;) and we search for an inline token (&lt;code&gt;findInlineTokenInBlockquote&lt;/code&gt;), so we can clean it up slightly&lt;/li&gt;
&lt;li&gt;we don&#39;t do anything if it&#39;s an empty blockquote&lt;/li&gt;
&lt;li&gt;we check - using our regex - if we are in the kind of blockquote we want to alter or not&lt;/li&gt;
&lt;li&gt;we check if it&#39;s a &lt;code&gt;[!NOTE]&lt;/code&gt;, &lt;code&gt;[!NOTE]+&lt;/code&gt; or &lt;code&gt;[!NOTE]-&lt;/code&gt; and replace tags/add attributes accordingly&lt;/li&gt;
&lt;li&gt;we do parse the summary/title of the callout ourselves as it is part of the &lt;code&gt;html_block&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;finally, we overwrite the starting token, closing token and strip out the &lt;code&gt;[!NOTE]&lt;/code&gt; part from the content token&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;limitations&quot;&gt;Limitations&lt;/h3&gt;
&lt;p&gt;It&#39;s important to note that this is not really meant (yet) to handle nested callouts:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; [!NOTE]
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt; Like
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt; &gt;&lt;/span&gt; [!NOTE]
&lt;span class=&quot;token blockquote punctuation&quot;&gt;&gt; &gt;&lt;/span&gt; This&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;...but that&#39;s fine for now. We also only care for &lt;code&gt;[!NOTE]&lt;/code&gt; callouts (not &lt;code&gt;[!QUOTE]&lt;/code&gt; or whatever).&lt;/p&gt;
&lt;h3 id=&quot;configuring-the-plugin&quot;&gt;Configuring The Plugin&lt;/h3&gt;
&lt;p&gt;In our &lt;code&gt;eleventy.config.js&lt;/code&gt; we do the following&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;noteCalloutPlugin&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;./note-callout-plugin.js&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;eleventyConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;// markdown-it plugins&lt;/span&gt;
  eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;amendLibrary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;md&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;mdLib&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;// callout plugin&lt;/span&gt;
    mdLib&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;noteCalloutPlugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You may have noticed that we set &lt;code&gt;class=&amp;quot;message-box&amp;quot;&lt;/code&gt; on the opening callout tag (&lt;code&gt;details&lt;/code&gt; or &lt;code&gt;div&lt;/code&gt;). This class is styled in an extra css file named message-box.css. This message box is &lt;a href=&quot;https://github.com/11ty/eleventy-base-blog/blob/cd13eae38cf02d81b0761f372194c64efb9f96e1/_includes/layouts/home.njk#L6&quot;&gt;meant&lt;/a&gt; to show off &lt;a href=&quot;https://github.com/11ty/eleventy-plugin-bundle&quot;&gt;eleventy-plugin-bundle&lt;/a&gt;, but as per &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/&quot;&gt;my strategy of reusing the defaults&lt;/a&gt;, we will just reuse the css for our own use. We also don&#39;t need to change anything in it, we just need to make sure that we actually always include the css per default instead of only sometimes.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;For this we update our &lt;code&gt;base.njk&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;...
{%- css %}{% include &quot;public/css/index.css&quot; %}{% endcss %}
{%- css %}{% include &quot;public/css/message-box.css&quot; %}{% endcss %} &amp;lt;- add this
...&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;using-the-plugin&quot;&gt;Using the plugin&lt;/h3&gt;
&lt;p&gt;Using the plugin is as easy as writing obsidian flavored markdown:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE]
&amp;gt; Callouts are cool! Hooray!
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;Callouts are cool! Hooray!&lt;/p&gt;
&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE] And we can even do Titled Callouts!
&amp;gt; Hooray!
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;And we can even do Titled Callouts!&lt;/p&gt;
&lt;p&gt;Hooray!&lt;/p&gt;
&lt;/div&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE]+ _Foldable_ Titled Callouts!
&amp;gt; Hooray!
&lt;/code&gt;&lt;/pre&gt;
&lt;details class=&quot;message-box&quot; open=&quot;&quot;&gt;&lt;summary&gt;&lt;em&gt;Foldable&lt;/em&gt; Titled Callouts!&lt;/summary&gt;
&lt;p&gt;Hooray!&lt;/p&gt;
&lt;/details&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; [!NOTE]- _Folded_ Titled Callouts!
&amp;gt; Hooray!
&lt;/code&gt;&lt;/pre&gt;
&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;&lt;em&gt;Folded&lt;/em&gt; Titled Callouts!&lt;/summary&gt;
&lt;p&gt;Hooray!&lt;/p&gt;
&lt;/details&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://help.obsidian.md/callouts&quot;&gt;&amp;quot;Callouts&amp;quot;&lt;/a&gt; is the name in Obsidian. In Github flavored Markdown these are called &lt;a href=&quot;https://github.com/orgs/community/discussions/16925&quot;&gt;&amp;quot;Alerts&amp;quot;&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;There is an mit licensed package inspired by this called &lt;a href=&quot;https://github.com/ryanisaacg/markdown-it-callouts&quot;&gt;markdown-it-callouts&lt;/a&gt;, but this lacks the possibility to fold callouts, which I use for my changelogs (see &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/23/mobile-nav/&quot;&gt;here&lt;/a&gt; for example). &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;that&#39;s the markdown parse/renderer used by eleventy &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;You can see the complete array, by using their demo tool, &lt;a href=&quot;https://markdown-it.github.io/#md3=%7B%22source%22%3A%22%3E%20%5B!NOTE%5D%2B%5Cn%3E%20Hello%20%2AWorld%2A%22%2C%22defaults%22%3A%7B%22html%22%3Afalse%2C%22xhtmlOut%22%3Afalse%2C%22breaks%22%3Afalse%2C%22langPrefix%22%3A%22language-%22%2C%22linkify%22%3Atrue%2C%22typographer%22%3Atrue%2C%22_highlight%22%3Atrue%2C%22_strict%22%3Afalse%2C%22_view%22%3A%22debug%22%7D%7D&quot;&gt;here&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In theory, other plugins could alter these tokens, but it is not done by default. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;You may already have a markdown-it plugin activated (f.x. &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&quot;&gt;footnotes&lt;/a&gt;). If that is the case, there is no need to add another &lt;code&gt;amendLibrary&lt;/code&gt; block just put them all inside those curly braces after mdLib. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Two notes here: 1. You could add &lt;code&gt;.message-box + .message-box { margin-top: 1.5em;}&lt;/code&gt; so that callouts have some distance between each other if you happen to use more than one, like I do &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html&quot;&gt;here&lt;/a&gt; and below. 2. This is such a small amount of CSS that performance should not be an issue. It just makes working with callouts so much easier to include this file by default. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Make Eleventy Understand Obsidian-style Callouts

        https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1261 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/10/dailydogo1261/" />
      <updated>2025-05-10T20:29:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/10/dailydogo1261/</id>
      <content type="html">&lt;p&gt;DailyDogo 1261 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi on a bending forest trail. It&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1261-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1261 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1260 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/09/dailydogo1260/" />
      <updated>2025-05-09T20:21:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/09/dailydogo1260/</id>
      <content type="html">&lt;p&gt;DailyDogo 1260 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi jumping the photographer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1260-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1260 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1259 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/08/dailydogo1259/" />
      <updated>2025-05-08T19:51:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/08/dailydogo1259/</id>
      <content type="html">&lt;p&gt;DailyDogo 1259 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi looking into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1259-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1259 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1258 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/07/dailydogo1258/" />
      <updated>2025-05-07T20:00:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/07/dailydogo1258/</id>
      <content type="html">&lt;p&gt;DailyDogo 1258 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on the floor and eating an apple slice under a couch table.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1258-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1258 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1257 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/06/dailydogo1257/" />
      <updated>2025-05-06T20:03:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/06/dailydogo1257/</id>
      <content type="html">&lt;p&gt;DailyDogo 1257 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is lying on the floor next to a couch and a recliner. She looks up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1257-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1257 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1256 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/05/dailydogo1256/" />
      <updated>2025-05-05T20:27:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/05/dailydogo1256/</id>
      <content type="html">&lt;p&gt;DailyDogo 1256 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is lying on a round carpet and leaning her head against a human&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1256-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1256 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1255 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/04/dailydogo1255/" />
      <updated>2025-05-04T19:25:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/04/dailydogo1255/</id>
      <content type="html">&lt;p&gt;DailyDogo 1255 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan is enjoying a patch of snow she found, by rubbing her back on it.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1255-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1255 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1254 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/03/dailydogo1254/" />
      <updated>2025-05-03T20:16:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/03/dailydogo1254/</id>
      <content type="html">&lt;p&gt;DailyDogo 1254 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor and watching in to the camera. The person holding the camera is reading a Finnish language nature book.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1254-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1254 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1253 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/02/dailydogo1253/" />
      <updated>2025-05-02T23:19:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/02/dailydogo1253/</id>
      <content type="html">&lt;p&gt;DailyDogo 1253 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan excitedly smiling into the camera. The dog is apparently wet from the rain.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1253-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1253 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1252 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/05/01/dailydogo1252/" />
      <updated>2025-05-01T18:54:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/05/01/dailydogo1252/</id>
      <content type="html">&lt;p&gt;DailyDogo 1252 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing in front of a park. There are people, bikes and some trees and an old wooden building (the &amp;amp;quot;t&amp;amp;#228;htitorni&amp;amp;quot; observatory caf&amp;amp;#233; Oulu) in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1252-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1252 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1251 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/30/dailydogo1251/" />
      <updated>2025-04-30T21:09:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/30/dailydogo1251/</id>
      <content type="html">&lt;p&gt;DailyDogo 1251 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing on a patch of grass. There are some residental buildings in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1251-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1251 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Keeping A Dev Log



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/30/dev-log/" />
      <updated>2025-04-30T09:29:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/30/dev-log/</id>
      <content type="html">&lt;p&gt;Just a short note (a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/&quot;&gt;seedling&lt;/a&gt;), if you will) that keeping a dev log in some form or fashion is very helpful. What is a dev log?&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/30/dev-log/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s a log in which you write down what you&#39;re doing or have done throughout your work day. You simply write down what you&#39;re doing as you work. You could jot down...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What problems occurred and how you&#39;re trying to solve them.&lt;/li&gt;
&lt;li&gt;Who you have to talk to next.&lt;/li&gt;
&lt;li&gt;What you&#39;re waiting on.&lt;/li&gt;
&lt;li&gt;Any general reflections and observations you have.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short: Write down anything that will help you figure out what to do next (and maybe how to do it better/quicker/smarter in the future). You can get super-fancy or just create a long bulleted list. The choice is totally yours.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/30/dev-log/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;But regardless of how you implement the practice, having an external &amp;quot;log&amp;quot; can really help you avoid getting lost in the weeds, capitalizing on prior solutions and making sure you don&#39;t have to try the same wrong thing twice.&lt;/p&gt;
&lt;p&gt;More Info:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fev.al/posts/work-journal/&quot;&gt;Use A Work Journal To Recover Focus Faster And Clarify Your Thoughts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://digitalintuition.llc/blog/2024/05/27/keeping-a-dev-log-101&quot;&gt;Keeping a Dev Log 101&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://digitalintuition.llc/blog/2024/05/01/think-you-dont-need-a-dev-log-laboratory-scientists-would-disagree&quot;&gt;Think You Don&#39;t Need a Dev Log? Laboratory Scientists Would Disagree&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you&#39;re not a developer, you may prefer the term &amp;quot;work journal&amp;quot;. In any case it&#39;s a practice loosely adapted from laboratory science and is therefore not specific only to developers. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/30/dev-log/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;d personally recommend keeping in mind that your actual work should be the priority so don&#39;t end up creating the &amp;quot;perfect&amp;quot; dev log. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/30/dev-log/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Keeping A Dev Log

        https://blog.martin-haehnel.de/2025/04/30/dev-log/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1250 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/29/dailydogo1250/" />
      <updated>2025-04-29T20:33:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/29/dailydogo1250/</id>
      <content type="html">&lt;p&gt;DailyDogo 1250 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a dog bed looking somewhat groggy. There is a ray of sunlight going over her face.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1250-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1250 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1249 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/28/dailydogo1249/" />
      <updated>2025-04-28T19:33:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/28/dailydogo1249/</id>
      <content type="html">&lt;p&gt;DailyDogo 1249 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan sitting on the floor and looking up to camera. She looks very cute, as if expecting a treat.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1249-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1249 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1248 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/27/dailydogo1248/" />
      <updated>2025-04-27T19:17:45Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/27/dailydogo1248/</id>
      <content type="html">&lt;p&gt;DailyDogo 1248 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor and chewing on a turtle dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1248-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1248 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1247 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/26/dailydogo1247/" />
      <updated>2025-04-26T20:01:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/26/dailydogo1247/</id>
      <content type="html">&lt;p&gt;DailyDogo 1247 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan standing next to a canal on a platform. She looks straight into the camera and has her tongue out.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1247-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1247 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1246 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/25/dailydogo1246/" />
      <updated>2025-04-25T20:11:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/25/dailydogo1246/</id>
      <content type="html">&lt;p&gt;DailyDogo 1246 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on her back on a frozen part of the baltic sea. The horizon is far away and some small islands are visible relatively far way.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1246-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1246 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Personal Note On My Interest In LLMs



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/" />
      <updated>2025-04-25T18:49:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/</id>
      <content type="html">&lt;p&gt;&lt;em&gt;Disclosure: I was first going to write this as a Discord message after inviting people to take part in a semi-public weekly review thread on an accountability forum called didyoudoit that I host, but it became longer and more complex the further it went on, so I thought I&#39;d put it on the blog, where I can be as elaborate as I want to be.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I write the following because I am afraid that my personal interest in LLMs has stopped people from participating in this accountability forum. I &lt;em&gt;hope&lt;/em&gt; that my personal interest in trying to learn more about AI in a programming/self-improvement context - I try to really immerse myself into all kinds of things related to this in this quarter - is not totally off-putting, but I fear it might.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I don&#39;t know if it helps, but I do value stuff made by real humans a lot, I am very interested in the human experience and am not just an unthinking monster without empathy. I have a master&#39;s degree in history of science and technology and work as a programmer now. The intersection of science, technology and society has always fascinated me. I try to embrace the mess that is societal development and am very curious about all kinds of things humans have created and how these things, in turn, have shaped society.&lt;/p&gt;
&lt;p&gt;I do not claim to have all the answers with regard to how to deal with LLMs either, but I do strongly believe that throwing yourself into all aspects of an issue is a great way to learn more about it. I have also advocated before that I think it&#39;s a good idea to avoid a purity-based approach to contested topics (you either do everything right, or you&#39;re a monster isn&#39;t a good approach). &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;I did this even in my last post on LLMs&amp;period;&lt;/a&gt; I think it is fine and necessary to overstep from time to time - within reason.&lt;/p&gt;
&lt;p&gt;Accountability in the personal productivity space is a funny thing. Almost every self-help book is singing the praises of some kind of communal aspect. But actually finding people interested in implementing the concept is difficult. I have dreamt for some time of a low-barrier space in which I could share my plans and goals, with not too many bells and whistles and hoops to jump through. Just a space to share and reflect kind of publicly.&lt;/p&gt;
&lt;p&gt;When the opportunity finally presented itself this year to create a place like that, I immediately jumped on it and that&#39;s how &lt;a href=&quot;https://www.didyoudoit.lol&quot;&gt;didyoudoit&lt;/a&gt; was born. One person offered to get the domain and I pay for the hosting of the forum itself. On Mondays a planning thread is posted and on Fridays a review thread and that&#39;s about it.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Being part of a forum and posting your plans, hopes and dreams also means you get to know your fellow personal productivity nerds a little better. For example you&#39;d learn all kinds of things about me, like that I&#39;m trying to learn Finnish (and that it&#39;s hard) or that I frequently fail - at least in recent weeks - to go to the gym. You&#39;ll also learn that I try to focus on quarterly goals or, as I like to call them - &lt;a href=&quot;https://aliabdaal.com/videos/stop-wasting-time-how-to-change-your-life-in-90-days/&quot;&gt;after Ali Abdaal&lt;/a&gt; - my quarterly &lt;em&gt;quests&lt;/em&gt;. One of my quarterly quests is learning more about LLMs.&lt;/p&gt;
&lt;p&gt;It&#39;s not like I&#39;ve been avoiding using them, but actively focusing on them was not a priority. By doing so in the last few weeks, I&#39;ve learned a lot about what the tech can do pretty well and what it can&#39;t at all. I still stand by what I said in &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;my last post about LLMs&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;To get back to the question whether LLMs are a positive for society, the answer depends entirely on what we are using LLMs for. Right now, it seems to me that LLMs are mostly helpful in a programming context (and maybe a handful of other use cases, although I have no first-hand experience of that) and they are regrettably useful - or at least &lt;em&gt;used&lt;/em&gt; - to try to scam people, make workers lose their jobs, threaten the environment and drown out the beauty and uniqueness of everyone&#39;s voice.&lt;/p&gt;
&lt;p&gt;Depending on our use and what we expect others to use it for, it can be at least a neutral thing. Or a somewhat-negative-but-because-of-the-upside-accepted thing. Like a small, reasonable car.&lt;/p&gt;
&lt;p&gt;This twitter post made the rounds recently:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;You know what the biggest problem with pushing all-things-AI is? Wrong direction.
I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.&amp;quot;
— &lt;a href=&quot;https://x.com/AuthorJMac/status/1773679197631701238&quot;&gt;x.com/AuthorJMa...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I think it encapsulates beautifully my sentiment: Use AI for the right things and there isn&#39;t really a big problem with the technology.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;All in all I still think that this is a pretty realistic outlook on AI.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; What I would like to amend slightly is that I have discovered a handful of additional good use cases (apart from coding):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;turning unstructured text of one kind into unstructured text of a different kind (think turning a personal note into a comment on a ticket at work  - this needs lots of editorial oversight)&lt;/li&gt;
&lt;li&gt;reflecting/refactoring of non-code systems (like systems of note taking or task management; this one needs lots of guidance as well)&lt;/li&gt;
&lt;li&gt;basic ideation - as long as you don&#39;t expect too interesting results&lt;/li&gt;
&lt;li&gt;creating basic files - like Excel sheets to track something, note templates, etc. (but this doesn&#39;t always make sense)&lt;/li&gt;
&lt;li&gt;proofreading and making suggestions for typos, grammar, and &lt;em&gt;basic&lt;/em&gt; style - have to be careful to not whittle away the tone of the text though&lt;/li&gt;
&lt;li&gt;generally if you need a &amp;quot;just for you&amp;quot; solution, like a simple illustration, summary, script, or something similar, that is not meant to be published but helps you reflect or get something small in scope done - low expectations help with not getting disappointed here&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also discovered what AI is not great at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;strategic/architectural/systemic thinking - this is a BIG area and encompasses ALL domains&lt;/li&gt;
&lt;li&gt;any refactorings that encompass more than one entity - like more than one class or more than one &amp;quot;module&amp;quot; in a non-code system (e.g. more than restructuring one project in your task-management system)&lt;/li&gt;
&lt;li&gt;ANY unsupervised work - &lt;em&gt;although&lt;/em&gt; getting a feel for the kinds of supervision/validation you need and how to provide it is a skill&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anyway, I am happy that I am going through the effort of learning more about this technology from a practical perspective. And at the same time I wish to make abundantly clear that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Most AI companies stink - and rules and regulations as well as &lt;em&gt;enforcement&lt;/em&gt; of them is absolutely important&lt;/li&gt;
&lt;li&gt;Acquisition of the training data is sometimes problematic&lt;/li&gt;
&lt;li&gt;The environmental impact of the technology is not zero&lt;/li&gt;
&lt;li&gt;I want to live in a world in which human expressions of beauty are not displaced by &amp;quot;statistical pleasantries&amp;quot;&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all of that said, I would love to see &lt;em&gt;you&lt;/em&gt; on &lt;a href=&quot;https://www.didyoudoit.lol&quot;&gt;didyoudoit&lt;/a&gt; as I genuinely believe that reviewing and planning in a semi-public context is a great opportunity for growth and didyoudoit is a friendly place to dip your toe into this whole accountability thing.&lt;/p&gt;
&lt;p&gt;I hope that by writing a real blog post about this topic I can show what I&#39;m about and that the person behind didyoudoit is not a rube - even though he is somewhat - although not uncritically - interested in LLMs.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;To be clear: Nobody has told me that any of this matters to them. So this might all just be in my head. Still, it wanted out. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The forum is very loosely associated with the &lt;a href=&quot;https://omg.lol&quot;&gt;omg.lol&lt;/a&gt; community as it was conceived within the discord over there. But in reality anybody could join if they so wish. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m mostly saddened by the fact that the quote is from Twitter... &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I don&#39;t think that this actually happens, but I &lt;em&gt;do&lt;/em&gt; think that society at large has a hard time differentiating uniquely interesting human expressions from statistically pleasant, &amp;quot;by the numbers&amp;quot;, content, which in turn makes it harder for people to make enough money to pursue the kinds of careers enabling such expressions. But that&#39;s a different topic for another day. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        A Personal Note On My Interest In LLMs

        https://blog.martin-haehnel.de/2025/04/25/llms-personal-note-didyoudoit/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1245 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/24/dailydogo1245/" />
      <updated>2025-04-24T19:28:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/24/dailydogo1245/</id>
      <content type="html">&lt;p&gt;DailyDogo 1245 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on a small bed made for humans in a very small room.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1245-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1245 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1244 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/23/dailydogo1244/" />
      <updated>2025-04-23T18:02:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/23/dailydogo1244/</id>
      <content type="html">&lt;p&gt;DailyDogo 1244 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan walking next to a brown small dog of undetermined breed. They look like they have been playing together.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1244-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1244 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1243 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/22/dailydogo1243/" />
      <updated>2025-04-22T19:38:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/22/dailydogo1243/</id>
      <content type="html">&lt;p&gt;DailyDogo 1243 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying next to curtain and behind a drying rack. She is facing away from the camera, resting.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1243-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1243 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1242 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/21/dailydogo1242/" />
      <updated>2025-04-21T20:05:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/21/dailydogo1242/</id>
      <content type="html">&lt;p&gt;DailyDogo 1242 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi cardigan lying on the floor, looking directly at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1242-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1242 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Make Eleventy Understand Obsidian-style Wiki Links



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/21/eleventy-wikilinks/" />
      <updated>2025-04-20T23:12:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/21/eleventy-wikilinks/</id>
      <content type="html">&lt;p&gt;I have started to use &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; as my blog editor and because of that I needed a simple way to make eleventy understand wiki links like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[[eleventy-wikilinks|How To Make Eleventy Understand Obsidian-style Wiki Links]]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I first thought I would need to write my own code to make eleventy understand what this means, but as it turns out there exists a plugin for Eleventy that does this already.&lt;/p&gt;
&lt;p&gt;First, install the plugin:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; i @photogabble/eleventy-plugin-interlinker&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then, in your &lt;code&gt;eleventy.config.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; interlinker &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@photogabble/eleventy-plugin-interlinker&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;eleventyConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
	eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addPlugin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;interlinker&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And that&#39;s already it. This plugin has &lt;a href=&quot;https://github.com/photogabble/eleventy-plugin-interlinker&quot;&gt;a bunch of additional features&lt;/a&gt; (like backlinks), but this is all you need to make wiki links work.&lt;/p&gt;
&lt;p&gt;With this setup you can write blog posts and interlink them using obsidians native linking capabilities and eleventy will understand what to do with those links as well. Pretty nice.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        How To Make Eleventy Understand Obsidian-style Wiki Links

        https://blog.martin-haehnel.de/2025/04/21/eleventy-wikilinks/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1241 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/20/dailydogo1241/" />
      <updated>2025-04-20T21:08:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/20/dailydogo1241/</id>
      <content type="html">&lt;p&gt;DailyDogo 1241 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on the floor, photographed straight on, showing her tongue and looking quite silly.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1241-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1241 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1240 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/19/dailydogo1240/" />
      <updated>2025-04-19T19:26:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/19/dailydogo1240/</id>
      <content type="html">&lt;p&gt;DailyDogo 1240 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi photographed from behind. She is walking next to a canal with a couple of boat stages next to her.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1240-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1240 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My Belarussian Neighbor



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/19/belarussian-neighbor/" />
      <updated>2025-04-19T08:15:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/19/belarussian-neighbor/</id>
      <content type="html">&lt;p&gt;Interesting discussion with the Belarusian neighbor. We walked the dogs together in the morning today. We talked about their way to Finland, fleeing oppression - though not under direct threat, he hastens to add. &amp;quot;We just couldn&#39;t - and also didn&#39;t want to - stay anymore.&amp;quot; How they went to Hungary, because that&#39;s where they could go. How they went to Berlin to get a visa, how they went to Finland because his wife could study here. They&#39;ll move from Oulu to Helsinki next, where she got a place at a university. They have almost nothing. Everything fits in the car. They dream of living in Slovenia, as they can read the language and it is culturally similar and - &amp;quot;why not live in the most successful Slavic country?&amp;quot;. Indeed.&lt;/p&gt;
&lt;p&gt;They didn&#39;t vote in the local elections - even though we non-Finns are allowed to - because: &amp;quot;Why would we? We never voted. It&#39;s just all so confusing. All these parties and what to do. But we got a sausage for free in the city center from one of the parties once. That was nice.&amp;quot; I talk about my strong political opinions that democracy and liberty and equality are important and taking those seriously can turn a life based on pragmatism and survival into one of ideals and freedom. Getting to vote feels good.&lt;/p&gt;
&lt;p&gt;From his perspective, accepting the Belarusian dictator Lukashenko is the lesser of two evils, because it seems likely that his home country would just befall the same fate as Ukraine. He still has family there. Russia brought torture, people got deported. But as long as you are not talking too loudly, they can live in Belarus relatively safely, he says. And my liking democracy - like so many Europeans he has spoken to since - isn&#39;t that just a result of my upbringing anyway?&lt;/p&gt;
&lt;p&gt;Of course, I agree, you&#39;re influenced by your surroundings and your political opinions are formed by what media you consume (and what is available to you), what other political beliefs you see and hear people hold. But. There is more to liking democracy than that, as rational discourse about these topics is possible and encouraged and can show that you&#39;re freer to do things in e.g. a democratic country like Finland as opposed to what you can do or say in Belarus. I can see that he is so hungry to just be allowed to live, to be free of duty. To be free of having to justify simply wanting to &lt;em&gt;be&lt;/em&gt;. I bring up degenerated democracies like the one in the USA and why it is so important to defend democratic institutions and values. In our own ways, we talk past each other and I think we both realize it, too.&lt;/p&gt;
&lt;p&gt;He is an entrepreneur. And he loves how easy it is to set things up here. We joke that he should never move to Germany in that case because German bureaucracy might just eat him alive. We wave at each other - he lives on the ground floor, and I live on the fifth - as I enter the elevator with my dog.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My Belarussian Neighbor

        https://blog.martin-haehnel.de/2025/04/19/belarussian-neighbor/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1239 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/18/dailydogo1239/" />
      <updated>2025-04-18T20:42:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/18/dailydogo1239/</id>
      <content type="html">&lt;p&gt;DailyDogo 1239 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on the floor next to a sofa stool, looking slightly up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1239-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1239 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1238 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/17/dailydogo1238/" />
      <updated>2025-04-17T21:47:27Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/17/dailydogo1238/</id>
      <content type="html">&lt;p&gt;DailyDogo 1238 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying on a beach. In the background the icy baltic sea is visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1238-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1238 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1237 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/16/dailydogo1237/" />
      <updated>2025-04-17T09:05:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/16/dailydogo1237/</id>
      <content type="html">&lt;p&gt;DailyDogo 1237 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a couch, photographed from above.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1237-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1237 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1236 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/15/dailydogo1236/" />
      <updated>2025-04-15T18:58:57Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/15/dailydogo1236/</id>
      <content type="html">&lt;p&gt;DailyDogo 1236 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting on a wooden staircase next to a canal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1236-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1236 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1235 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/14/dailydogo1235/" />
      <updated>2025-04-14T19:58:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/14/dailydogo1235/</id>
      <content type="html">&lt;p&gt;DailyDogo 1235 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a couch with her head under it in such a way that it is not visible from the perspective of the eye.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1235-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1235 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1234 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/13/dailydogo1234/" />
      <updated>2025-04-13T17:46:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/13/dailydogo1234/</id>
      <content type="html">&lt;p&gt;DailyDogo 1234 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A close-up photograph of a black and white corgi sitting on a wooden staircase outside.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1234-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1234 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1233 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/12/dailydogo1233/" />
      <updated>2025-04-12T20:45:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/12/dailydogo1233/</id>
      <content type="html">&lt;p&gt;DailyDogo 1233 🐶&lt;/p&gt;
  &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying in the snow, looking at the camera, with snow on her nose.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1233-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1233 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1232 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/11/dailydogo1232/" />
      <updated>2025-04-11T18:03:31Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/11/dailydogo1232/</id>
      <content type="html">&lt;p&gt;DailyDogo 1232 🐶&lt;/p&gt;
  &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi and white borzoi - a long legged and very slim breed - are playing together. The corgi is lying on her back and the borzoi is sniffing her. You can see the paws of the corgi and that the borzoi is wearing a harness.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1232-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1232 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1231 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/10/dailydogo1231/" />
      <updated>2025-04-10T19:11:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/10/dailydogo1231/</id>
      <content type="html">&lt;p&gt;DailyDogo 1231 🐶&lt;/p&gt;
  &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi with her tongue, panting. She&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1231-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1231 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1230 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/09/dailydogo1230/" />
      <updated>2025-04-09T19:07:20Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/09/dailydogo1230/</id>
      <content type="html">&lt;p&gt;DailyDogo 1230 🐶&lt;/p&gt;
  &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi lying next to a pink wool sock, looking somewhat protective of it up at the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1230-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1230 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1229 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/08/dailydogo1229/" />
      <updated>2025-04-08T19:46:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/08/dailydogo1229/</id>
      <content type="html">&lt;p&gt;DailyDogo 1229 🐶&lt;/p&gt;
  &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi photographed from above on a carpet.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1229-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1229 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1228 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/07/dailydogo1228/" />
      <updated>2025-04-07T19:24:22Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/07/dailydogo1228/</id>
      <content type="html">&lt;p&gt;DailyDogo 1228 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sitting on the living room floor and looking straight into the camera, her head slightly tilted.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1228-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1228 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1227 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/06/dailydogo1227/" />
      <updated>2025-04-06T20:06:57Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/06/dailydogo1227/</id>
      <content type="html">&lt;p&gt;DailyDogo 1227 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sleeping under a couch table. Because of the angle and because of her thick fur, it almost looks like one of the table legs goes through the back of her neck.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1227-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1227 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1226 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/05/dailydogo1226/" />
      <updated>2025-04-05T20:13:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/05/dailydogo1226/</id>
      <content type="html">&lt;p&gt;DailyDogo 1226 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi looking fiercely into the camera while biting down on the (squeaking, btw.) throat of a turtle dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1226-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1226 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1225 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/04/dailydogo1225/" />
      <updated>2025-04-04T20:06:44Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/04/dailydogo1225/</id>
      <content type="html">&lt;p&gt;DailyDogo 1225 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi sleeping with half her head under a couch on wooden legs.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1225-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1225 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good Apps: Endel



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/" />
      <updated>2025-04-03T19:05:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/</id>
      <content type="html">&lt;p&gt;I am a person who &lt;em&gt;needs&lt;/em&gt; background noise in some form or fashion. What that background noise needs to be changes over time. But right now I need pleasant noises. Not quite music (although slightly &lt;em&gt;musical&lt;/em&gt;), but just something that satisfies my need for background noise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://endel.io&quot;&gt;Endel&lt;/a&gt; is really great at that. It offers quite a few features, but the main thing I like about it is that all the soundscapes it offers are high quality, adapt to your current situation and I also really appreciate the sheer number of options (which is not always a good thing, but here it somehow is!). By incorporating your circadian rhythm, your current movement and where you are in the world (and if there is light outside or not) it - depending on what soundscape you&#39;re listening to - will change the sound you&#39;ll hear. On top of that you can also manually change certain aspects of it like the focus soundscape lets you decide how the soundscape should feel in terms of being fluid, intense, structured and easy. Apart from those dynamic soundscapes, it also offers time boxed scenarios. Together,  this is quite a comprehensive library of things to listen to. I like that it basically always has at least one thing to offer &amp;quot;while doing X&amp;quot;, where &amp;quot;X&amp;quot; really can be anything: focus, relax, move and sleep are the big soundscape categories, but there&#39;s also wake up, nap, chores, mediate, etc.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The UI is something you&#39;ll have to get used to, but otherwise I really don&#39;t have any complaints.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although I do mostly listen to the open ended focus, relax, move and sleep soundscapes, truth be told. It&#39;s still nice to know that there are shorter scenarios available to me. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Good Apps: Endel

        https://blog.martin-haehnel.de/2025/04/03/good-apps-endel/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1224 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/03/dailydogo1224/" />
      <updated>2025-04-03T19:03:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/03/dailydogo1224/</id>
      <content type="html">&lt;p&gt;DailyDogo 1224 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A somewhat blurry photo of a black and white corgi in her dog bed. Taken from above while playing.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1224-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1224 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1223 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/02/dailydogo1223/" />
      <updated>2025-04-02T19:34:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/02/dailydogo1223/</id>
      <content type="html">&lt;p&gt;DailyDogo 1223 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi is licking the photographers hand, who is seated on a couch. The dog&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1223-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1223 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1222 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/04/01/dailydogo1222/" />
      <updated>2025-04-01T17:28:34Z</updated>
      <id>https://blog.martin-haehnel.de/2025/04/01/dailydogo1222/</id>
      <content type="html">&lt;p&gt;DailyDogo 1222 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi is pulling a dog toy next to a couch. The arm of the photographer not holding the camera is visible pulling on the other end of the toy. The dog looks playful.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1222-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1222 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1221 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/31/dailydogo1221/" />
      <updated>2025-03-31T19:08:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/31/dailydogo1221/</id>
      <content type="html">&lt;p&gt;DailyDogo 1221 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi laying on the floor next to a tv bench and looking at the camera. She seems quite tired.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1221-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1221 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1220 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/30/dailydogo1220/" />
      <updated>2025-03-30T19:00:41Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/30/dailydogo1220/</id>
      <content type="html">&lt;p&gt;DailyDogo 1220 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi walking through a muddy field towards the camera. There is a man walking behind the dog, but only his lower half is visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1220-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1220 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1219 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/29/dailydogo1219/" />
      <updated>2025-03-29T21:21:07Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/29/dailydogo1219/</id>
      <content type="html">&lt;p&gt;DailyDogo 1219 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi rubbing its head in a playful manner on a white carpet next to a bed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1219-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1219 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1218 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/28/dailydogo1218/" />
      <updated>2025-03-28T20:29:28Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/28/dailydogo1218/</id>
      <content type="html">&lt;p&gt;DailyDogo 1218 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A sleeping black and white dog, photographed from behind, so that her back paws are visible, in between a couch and a recliner chair.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1218-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1218 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1217 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/27/dailydogo1217/" />
      <updated>2025-03-27T20:22:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/27/dailydogo1217/</id>
      <content type="html">&lt;p&gt;DailyDogo 1217 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi walking next to a canal in an urban environment with her tail up. It is late winter and the ice is finally melting.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1217-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1217 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1216 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/26/dailydogo1216/" />
      <updated>2025-03-26T20:05:55Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/26/dailydogo1216/</id>
      <content type="html">&lt;p&gt;DailyDogo 1216 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white corgi standing with a pretty big dog toy patterned like cow hide in her mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1216-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1216 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1215 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/25/dailydogo1215/" />
      <updated>2025-03-25T19:48:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/25/dailydogo1215/</id>
      <content type="html">&lt;p&gt;DailyDogo 1215 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi back turned to the camera is sitting in a snowy, uncultivated patch ofl and. There is a graffitied, abandoned trailer there. In the background an urban landscape is visible through some trees and vegetation. Residential buildings, a truck on the road in front of a newly built parking hall.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1215-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1215 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1214 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/24/dailydogo1214/" />
      <updated>2025-03-25T07:03:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/24/dailydogo1214/</id>
      <content type="html">&lt;p&gt;DailyDogo 1214 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi laying next to a kitchen table, watching the camera. The sunlight makes an interesting play of light and shadow on her face.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd124-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1214 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Creating A Navigation Menu For the Eleventy Base Blog



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/23/mobile-nav/" />
      <updated>2025-03-23T21:20:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/23/mobile-nav/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-03-23 - Created this note&lt;/li&gt;
&lt;li&gt;2025-03-24 - Fixed a missing word and added a link to the footnote. Added changelog section. Wrapped dark mode toggle in a &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; for accessibility reasons.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Just a quick note on the fact that this blog now has a custom main navigation that can grow past the five or so items that Eleventy&#39;s Base Blog allows.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/23/mobile-nav/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;the-base-njk-layout&quot;&gt;The base.njk layout&lt;/h2&gt;
&lt;p&gt;Before:&lt;/p&gt;
&lt;pre class=&quot;language-njk&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-njk&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;dark-button&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;onclick&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;darkToggle()&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Dark&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;Mode&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#skip&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;visually-hidden&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Skip&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;home-link&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;#&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;Read&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;more&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;about&lt;/span&gt; `&lt;span class=&quot;token variable&quot;&gt;eleventy&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;navigation&lt;/span&gt;` &lt;span class=&quot;token variable&quot;&gt;at&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;https&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;//&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;www&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;11ty&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;dev&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;docs&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;navigation&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; #&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;h2&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;visually-hidden&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Top&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;level&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;navigation&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;menu&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;h2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ul&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;all&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;eleventyNavigation&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav-item&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;{{ entry.url }}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;aria&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;current&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;page&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;endfor&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;skip&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After:&lt;/p&gt;
&lt;pre class=&quot;language-njk&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-njk&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#skip&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;visually-hidden&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Skip&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;home-link&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav-toggle&quot;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;aria&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;expanded&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;false&quot;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;aria&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;controls&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav-menu&quot;&lt;/span&gt;
    &lt;span class=&quot;token variable&quot;&gt;onclick&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&quot;
  &lt;span class=&quot;token variable&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;document&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;nav-menu&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token variable&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;expanded&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toggle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;open&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token variable&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;textContent&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;classList&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;contains&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;open&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; ? &lt;span class=&quot;token string&quot;&gt;&#39;✕ Close&#39;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;☰ Menu&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &quot;
  &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    ☰ &lt;span class=&quot;token variable&quot;&gt;Menu&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;h2&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;visually-hidden&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Top&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;level&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;navigation&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;menu&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;h2&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ul&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav-menu&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;collections&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;all&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;eleventyNavigation&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;nav-item&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
        &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;{{ entry.url }}&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;aria&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;current&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;page&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
          &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;a&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
      &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;endfor&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
      &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;dark-button&quot;&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;onclick&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;darkToggle()&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;Dark&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;Mode&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;button&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
    &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;li&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;ul&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;nav&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;main&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;skip&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So we split up &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;. There is a new button with a class of nav-toggle that changes its textContent depending on if a menu is opened or not. The dark mode toggle moved into the nav items as the last item there.&lt;/p&gt;
&lt;h2 id=&quot;the-index-css&quot;&gt;The index.css&lt;/h2&gt;
&lt;p&gt;Before:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Nav */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.nav&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;list-style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.nav-item&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inline-block&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.nav-item a[href]:not(:hover)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.nav a[href][aria-current=&quot;page&quot;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; underline&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After:&lt;/p&gt;
&lt;pre class=&quot;language-css&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;/* Nav */&lt;/span&gt;
&lt;span class=&quot;token selector&quot;&gt;.nav&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;flex-wrap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; wrap&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;gap&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.75rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;list-style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1px dashed &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--color-gray-20&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.5rem 0 0.5rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0 0 1rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.nav-item&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.nav-item a[href]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inline-block&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.5em 1em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.5em&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--nav-item-background&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.nav-item a[href]:hover&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--nav-item-background-hover&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.nav a[href][aria-current=&quot;page&quot;]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; underline&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.nav-toggle&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;max-width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 640px&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;header&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; relative&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; row&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;justify-content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; space-between&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; center&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;padding-bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1.75rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;.home-link&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0.75rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;.nav&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 0&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;transform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;translateY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;-100%&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;transition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; transform 0.3s ease-in-out&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;--background-color&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1000&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;flex-direction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; column&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;align-items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; flex-start&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;.nav.open&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;transform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;translateY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;0&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;.nav-toggle&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; inline-block&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; absolute&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;right&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1rem&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;z-index&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 1100&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So there is quite a bit more CSS here. The main differences are that on mobile (devices smaller than 641px) the navigation menu (nav-toggle) is visible. We can see here that it is positioned &lt;code&gt;absolute&lt;/code&gt; so that it can double as the open/close button for the nav menu. The menu itself flies in from above on top of the normal layout, so things are not jumping around. It took me quite a bit of time to get this right.&lt;/p&gt;
&lt;p&gt;On the desktop, things are now allowed to flow into the next row, which limits the width of the nav menu and I will feel less constrained adding new items to it.&lt;/p&gt;
&lt;p&gt;Buttons - like the dark mode toggle - finally found a home at the end of the regular nav items. And if there is ever any need for more buttons, we can just append them here, too.&lt;/p&gt;
&lt;p&gt;P.S.: Inspiration for this menu came from &lt;a href=&quot;https://cool-as-heck.blog&quot;&gt;Jason&#39;s blog Cool As Heck&lt;/a&gt;.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/&quot;&gt;Even though I was saying that I would try to not change the navigation, because using the default is just safer for somebody without a lot of visual skills.&lt;/a&gt; Cue maury lie detector meme, I guess. 😅 &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/23/mobile-nav/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Creating A Navigation Menu For the Eleventy Base Blog

        https://blog.martin-haehnel.de/2025/03/23/mobile-nav/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1213 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/23/dailydogo1213/" />
      <updated>2025-03-23T19:12:26Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/23/dailydogo1213/</id>
      <content type="html">&lt;p&gt;DailyDogo 1213 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi laying next to a tv bench. Next to the dog&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd123-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1213 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1212 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/22/dailydogo1212/" />
      <updated>2025-03-22T20:32:39Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/22/dailydogo1212/</id>
      <content type="html">&lt;p&gt;DailyDogo 1212 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi lying on the floor of a pub watching into the camera next to a radiator and a shelf filled with beer bottles.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd122-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1212 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1211 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/21/dailydogo1211/" />
      <updated>2025-03-21T21:56:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/21/dailydogo1211/</id>
      <content type="html">&lt;p&gt;DailyDogo 1211 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi watching down from a glassed-in balcony out over a frozen-over canal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1211-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1211 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1210 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/20/dailydogo1210/" />
      <updated>2025-03-20T20:42:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/20/dailydogo1210/</id>
      <content type="html">&lt;p&gt;DailyDogo 1210 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi lying down next to a reading chair and watching excitedly past the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1210-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1210 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1209 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/19/dailydogo1209/" />
      <updated>2025-03-19T19:35:07Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/19/dailydogo1209/</id>
      <content type="html">&lt;p&gt;DailyDogo 1209 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi sitting on the floor with a wombat dog toy in the background.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1209-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1209 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1208 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/18/dailydogo1208/" />
      <updated>2025-03-18T19:13:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/18/dailydogo1208/</id>
      <content type="html">&lt;p&gt;DailyDogo 1208 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi sitting on a red towel with a slightly opened mouth.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1208-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1208 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1207 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/17/dailydogo1207/" />
      <updated>2025-03-17T21:07:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/17/dailydogo1207/</id>
      <content type="html">&lt;p&gt;DailyDogo 1207 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A corgi chewing on a roll of green yarn.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1207-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1207 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1206 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/16/dailydogo1206/" />
      <updated>2025-03-16T21:00:38Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/16/dailydogo1206/</id>
      <content type="html">&lt;p&gt;DailyDogo 1206 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1206-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1206 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1205 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/15/dailydogo1205/" />
      <updated>2025-03-15T20:47:27Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/15/dailydogo1205/</id>
      <content type="html">&lt;p&gt;DailyDogo 1205 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1205-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1205 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Calculating Pages from Listening Time



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/15/audio-book-time-to-page-calculator/" />
      <updated>2025-03-15T14:28:48Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/15/audio-book-time-to-page-calculator/</id>
      <content type="html">&lt;p&gt;Because &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/&quot;&gt;I&#39;d like to track my Books I am listening to&lt;/a&gt; by the page and not by the time I&#39;ve listened to them, this calculator is very practical: &lt;a href=&quot;https://audiobookment.com/audiobook-time-to-page-calculator/&quot;&gt;Audiobook Time To Page Calculator&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Calculating Pages from Listening Time

        https://blog.martin-haehnel.de/2025/03/15/audio-book-time-to-page-calculator/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Trying Out A Book Tracking App



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/" />
      <updated>2025-03-15T14:28:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/</id>
      <content type="html">&lt;p&gt;This is just a short post to tell you that I am trying out a new (to me) social book tracking app (similar to GoodReads but not Amazon owned) called The Storygraph. I am very bad, and I mean VERY bad at tracking books and media in general for some reason. It doesn&#39;t really make sense because I love tracking things!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; So here we go: &lt;a href=&quot;https://app.thestorygraph.com/profile/finn_matti&quot;&gt;Maybe this one will stick.&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Honestly, I do. Just look for example at my &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html&quot;&gt;Year Of Sleep Recap&lt;/a&gt;. Lots of data tracking going on there. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Trying Out A Book Tracking App

        https://blog.martin-haehnel.de/2025/03/15/book-tracking-app/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1204 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/14/dailydogo1204/" />
      <updated>2025-03-14T20:11:43Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/14/dailydogo1204/</id>
      <content type="html">&lt;p&gt;DailyDogo 1204 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1204-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1204 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1203 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/13/dailydogo1203/" />
      <updated>2025-03-13T21:06:13Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/13/dailydogo1203/</id>
      <content type="html">&lt;p&gt;DailyDogo 1203 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1203-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1203 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1202 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/12/dailydogo1202/" />
      <updated>2025-03-12T20:04:25Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/12/dailydogo1202/</id>
      <content type="html">&lt;p&gt;DailyDogo 1202 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1202-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1202 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1201 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/11/dailydogo1201/" />
      <updated>2025-03-11T19:10:26Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/11/dailydogo1201/</id>
      <content type="html">&lt;p&gt;DailyDogo 1201 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1201-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1201 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1200 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/10/dailydogo1200/" />
      <updated>2025-03-10T20:33:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/10/dailydogo1200/</id>
      <content type="html">&lt;p&gt;DailyDogo 1200 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1200-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1200 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1199 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/09/dailydogo1199/" />
      <updated>2025-03-09T21:11:16Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/09/dailydogo1199/</id>
      <content type="html">&lt;p&gt;DailyDogo 1199 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1199-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1199 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Creating A Guestbook To Crowd Source Alt Texts - Part 1 (Architecture &amp; Setup)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/" />
      <updated>2025-03-09T14:34:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/</id>
      <content type="html">&lt;h2 id=&quot;intro&quot;&gt;Intro&lt;/h2&gt;
&lt;p&gt;It&#39;s a long-standing tradition of this blog to post a dog pic - a &amp;quot;DailyDogo&amp;quot; per day. I have done so from day one when our dog Napu moved in with us, and I plan to continue to do so for the foreseeable future. However, one thing that always bothered me is that none of these dog pics have alt text, which is important to be inclusive and accessible.&lt;/p&gt;
&lt;p&gt;If you&#39;ve never heard about alt text: It is used by people (not only) using screen readers to be able to understand what an image is about. So alt text is a short description of what you see on the image.&lt;/p&gt;
&lt;p&gt;Anyways, I have not added alt-text to my dog pics.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; But I have come up with a way how YOU can help me to add alt texts to DailyDogos: A guestbook that instead of some kind of &amp;quot;Are you human&amp;quot; check asks that people provide alt text to a random dog pic!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;architecture&quot;&gt;Architecture&lt;/h2&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A diagram outlining the architecture of a guestbook system for a blog. The frontend (/guestbook) connects to a worker providing an API through a catch-all pages function (blog.martin-haehnel.de/api). The API includes six endpoints (getAll, approve-guestbook, create, approve-alt-text, refreshCandidates, and getCandidate), shown in green. These endpoints interact with different components: a GUESTBOOK_CACHE namespace (yellow) used by getAll; a RATE_LIMIT namespace (yellow) linked to create; three database tables (red): guestbook_entry, alt_text_suggestion, and alt_text_candidate, which store guestbook entries and alt-text suggestions. The architecture is color-coded: Eleventy (black), api-Worker (green), Blog (pages project) (blue), D1 Database (red), and KV Key/Value Store (yellow). Dashed lines indicate data flow between components, showing how different endpoints interact with storage and caching.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/blog-guestbook-architecture-draft.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;This site is based on Cloudflare&#39;s developer platform, meaning there isn&#39;t really a server involved, where I would ftp or ssh files to and configure a http server to handle a route in this way or that way. If that&#39;d be the case I would just build a small php api that handles reading and writing guestbook entries and alt text suggestions.&lt;/p&gt;
&lt;p&gt;But this blog is just a static website based on Eleventy and is deployed using Cloudflare Pages, a (mostly) static site host.&lt;/p&gt;
&lt;p&gt;I did say &amp;quot;(mostly)&amp;quot; though. Because you can actually have some dynamic functionality by using something called &amp;quot;pages functions&amp;quot; and workers. And that&#39;s what we&#39;ll use to make this guestbook a reality.&lt;/p&gt;
&lt;h3 id=&quot;database-structure&quot;&gt;Database Structure&lt;/h3&gt;
&lt;p&gt;The cloudflare platform has a managed database service called D1, which we&#39;ll use to save our guestbook&#39;s data and alt text candidates. So we&#39;ll need to create three tables&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Table &lt;code&gt;guestbook_entry&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;name&lt;/li&gt;
&lt;li&gt;website&lt;/li&gt;
&lt;li&gt;message&lt;/li&gt;
&lt;li&gt;approved&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Table &lt;code&gt;alt_text_candidate&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;post_url&lt;/li&gt;
&lt;li&gt;image_url&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Table &lt;code&gt;alt_text_suggestion&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;id&lt;/li&gt;
&lt;li&gt;alt_text_suggestion&lt;/li&gt;
&lt;li&gt;fk guestbook_message.id&lt;/li&gt;
&lt;li&gt;fk alt_text_candidate.id&lt;/li&gt;
&lt;li&gt;approved&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By having a column in the &lt;code&gt;alt_text_suggestion&lt;/code&gt; table that references the guestbook entry which was created alongside it, we&#39;ll know later where a suggestion came from. That could be nice if we want to give attribution, or make a leader board, or whatever. The suggestions are also related to the candidate - which is what I call a dog pic without an (approved) alt text entry so far.&lt;/p&gt;
&lt;h3 id=&quot;worker&quot;&gt;Worker&lt;/h3&gt;
&lt;p&gt;We&#39;ll create a minimalistic api which consists of four end points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;getAll&lt;/code&gt; - for fetching all guestbook entries from the database&lt;/li&gt;
&lt;li&gt;&lt;code&gt;create&lt;/code&gt; - for creating a guestbook entry and - if it was submitted - an alt text suggestion&lt;/li&gt;
&lt;li&gt;&lt;code&gt;getCandidate&lt;/code&gt; - for fetching a dog pic without an (approved) alt text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refresh-candidates&lt;/code&gt; - for creating dog pic candidates from my archival JSON feed&lt;/li&gt;
&lt;li&gt;&lt;code&gt;approve-guestbook&lt;/code&gt; - for approving a guestbook entry by its id&lt;/li&gt;
&lt;li&gt;&lt;code&gt;approve-alt-text&lt;/code&gt; - for approving alt text suggestions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;getAll&lt;/code&gt; endpoint will just do a &lt;code&gt;SELECT * FROM guestbook_entry&lt;/code&gt; and return a JSON that can then be used to create a list of guestbook entries on the frontend. For now that&#39;s enough. In the future we may want to have pagination functionality, and so we might want to add an offset and limit parameter later. But that&#39;s later.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;create&lt;/code&gt; endpoint will be called when a user submits a new entry to the guestbook. It creates an &lt;code&gt;INSERT&lt;/code&gt; statement for the &lt;code&gt;guestbook_entry&lt;/code&gt; table. It checks if the request includes a new alt text suggestion and then &lt;code&gt;INSERT&lt;/code&gt;s that data into that table, too.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;getCandidate&lt;/code&gt; endpoint returns an entry from the &lt;code&gt;alt_text_candiate&lt;/code&gt; table that doesn&#39;t have an approved entry, yet. We will get slightly fancy and introduce some randomness, so that we&#39;ll get different images with consecutive reloads of the form.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;refresh-candidates&lt;/code&gt; endpoint has the most complicated logic since it has to parse html (the entries of a JSON feed) AND check if the candidate is already in the database.&lt;/p&gt;
&lt;h4 id=&quot;pages&quot;&gt;Pages&lt;/h4&gt;
&lt;p&gt;Cloudflare Pages is what powers the blog itself. The way it works is that Cloudflare builds and redeploys the blog any time I push a new commit to the blog&#39;s Github repo. That part won&#39;t change, but we&#39;ll have to create a new page called &lt;code&gt;/guestbook/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;/guestbook/&lt;/code&gt; page will consist of two parts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a list of guestbook entries - We&#39;ll have to send a &lt;code&gt;GET&lt;/code&gt; request to the &lt;code&gt;getAll&lt;/code&gt; endpoint, parse the returned JSON and create a listing of all guestbook entries so far&lt;/li&gt;
&lt;li&gt;a form for new entries - It should have a form with a name field, an optional website field and a message field. So far so normal. When the page is loaded we will also send a &lt;code&gt;GET&lt;/code&gt; request to the &lt;code&gt;getCandidate&lt;/code&gt; endpoint to show a dog pic that lacks an approved alt text so far.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, we want to have a clean way of accessing the API. In theory, we could just access our worker through its URL - every worker gets its own URL - where it is reachable, but I think it&#39;s nicer if it just works through &lt;code&gt;https://blog.martin-haehnel.de/api/&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So in other words, the frontend JavaScript will not communicate directly with the api worker, but will send its request instead to an &lt;code&gt;/api/&lt;/code&gt; catch all endpoint. That endpoint will be using a Cloudflare Pages function, which then in turn forwards the request to the actual worker. In that way, we will have only one visible domain involved in serving the blog and its dynamic parts.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;h3 id=&quot;worker-repo&quot;&gt;Worker Repo&lt;/h3&gt;
&lt;p&gt;I started by creating a new worker through what is called C3, a cli tool that creates new repos based on existing templates.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm create cloudflare@latest -- --template=cloudflare/templates/d1-template
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This tool will ask a couple of questions, like what directory we want to install the new worker into (&lt;code&gt;cloudflare-guestbook&lt;/code&gt;) and if we want to use Git for version control (&lt;code&gt;yes&lt;/code&gt;) and also if we want to deploy the new worker as is (&lt;code&gt;no&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&quot;database-kv-secrets&quot;&gt;Database, KV, Secrets&lt;/h3&gt;
&lt;h5 id=&quot;initial-migration&quot;&gt;Initial Migration&lt;/h5&gt;
&lt;p&gt;Let&#39;s start by adjusting the migration file. I renamed mine to &lt;code&gt;0001_init.sql&lt;/code&gt; and replaced its contents as follows:&lt;/p&gt;
&lt;pre class=&quot;language-SQL&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-SQL&quot;&gt;-- Migration number: 0001 	 2025-02-16T22:03:36.794Z
-- Guestbook Entries
CREATE TABLE IF NOT EXISTS guestbook_entry
(
  id INTEGER PRIMARY KEY NOT NULL,
  name TEXT NOT NULL,
  website TEXT,
  message TEXT NOT NULL,
  approved BOOLEAN NOT NULL DEFAULT FALSE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Alt Text Candidates
CREATE TABLE IF NOT EXISTS alt_text_candidate
(
  id INTEGER PRIMARY KEY NOT NULL,
  post_url TEXT NOT NULL,
  image_url TEXT NOT NULL,
  status TEXT NOT NULL DEFAULT &#39;pending&#39; CHECK (status IN (&#39;pending&#39;, &#39;completed&#39;, &#39;removed&#39;)), -- pending = not yet processed, completed = alt text added, removed = image removed
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT unique_post_image UNIQUE (post_url, image_url)
  );

-- Alt Text Suggestions
CREATE TABLE IF NOT EXISTS alt_text_suggestion
(
  id INTEGER PRIMARY KEY NOT NULL,
  alt_text_suggestion TEXT NOT NULL,
  guestbook_message_id INTEGER NULL,
  alt_text_candidate_id INTEGER NULL, -- Allow NULL to keep suggestion even if candidate is deleted
  approved BOOLEAN NOT NULL DEFAULT FALSE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (guestbook_message_id) REFERENCES guestbook_entry (id) ON DELETE CASCADE,
  FOREIGN KEY (alt_text_candidate_id) REFERENCES alt_text_candidate (id) ON DELETE SET NULL
  );

-- Indexes for Optimized Queries
CREATE INDEX idx_guestbook_approved ON guestbook_entry (approved);
CREATE INDEX idx_suggestion_candidate ON alt_text_suggestion (alt_text_candidate_id);
CREATE INDEX idx_suggestion_approved ON alt_text_suggestion (approved);
CREATE INDEX idx_candidate_image ON alt_text_candidate (image_url);
CREATE INDEX idx_candidate_status ON alt_text_candidate (status);

-- Auto-update `updated_at` on row modifications
CREATE TRIGGER update_guestbook_updated_at
  AFTER UPDATE
  ON guestbook_entry
  FOR EACH ROW
BEGIN
  UPDATE guestbook_entry SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

CREATE TRIGGER update_candidate_updated_at
  AFTER UPDATE
  ON alt_text_candidate
  FOR EACH ROW
BEGIN
  UPDATE alt_text_candidate SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;

CREATE TRIGGER update_suggestion_updated_at
  AFTER UPDATE
  ON alt_text_suggestion
  FOR EACH ROW
BEGIN
  UPDATE alt_text_suggestion SET updated_at = CURRENT_TIMESTAMP WHERE id = OLD.id;
END;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Lots of stuff going on here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We define the tables and their columns and the types and if they are nullable and/or have a default value
&lt;ul&gt;
&lt;li&gt;We have one column in &lt;code&gt;alt_text_candidate&lt;/code&gt; that is basically an enum&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;We define a unique constraint on two columns of the &lt;code&gt;alt_text_candidate&lt;/code&gt; which we&#39;ll use later to figure out if we already added that particular dog pic to the list&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn5&quot; id=&quot;fnref5&quot;&gt;[5]&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;The suggestions will get a foreign key constraint on both a candidate and the corresponding guestbook entry&lt;/li&gt;
&lt;li&gt;All the columns that are used in &lt;code&gt;JOIN&lt;/code&gt; statements or &lt;code&gt;WHERE&lt;/code&gt; conditions get an index&lt;/li&gt;
&lt;li&gt;We create triggers for the &lt;code&gt;updated_at&lt;/code&gt; columns. So that when I approve something, I can see when this change has happened.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;creating-the-resources-and-configuring-bindings&quot;&gt;Creating The Resources And Configuring Bindings&lt;/h4&gt;
&lt;p&gt;Next, we&#39;ll actually create our database, apply the migration, create a secret and a couple of kv namespaces (used for caching and rate limiting, more on that later...) through Cloudflare&#39;s cli tool wrangler and binding them to the worker - so that it can use them. What&#39;s important here is that we will want to have three different setups:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;local - where d1 and kv is just simulated locally&lt;/li&gt;
&lt;li&gt;remote preview - where we run our worker on Cloudflare&#39;s infrastructure but not on production data&lt;/li&gt;
&lt;li&gt;prod - our actual productively deployed version of the guestbook&lt;/li&gt;
&lt;/ol&gt;
&lt;h5 id=&quot;prod&quot;&gt;Prod&lt;/h5&gt;
&lt;p&gt;We&#39;ll start &amp;quot;backwards&amp;quot;, so to speak, because some local resources are implicitly created when creating those resources on Cloudflare.&lt;/p&gt;
&lt;h6 id=&quot;database&quot;&gt;Database&lt;/h6&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler d1 create blog-guestbook&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After the database was created, you&#39;ll be shown a little piece of JSON:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &amp;quot;d1_databases&amp;quot;: [
    {
      &amp;quot;binding&amp;quot;: &amp;quot;DB&amp;quot;,
      &amp;quot;database_name&amp;quot;: &amp;quot;blog-guestbook&amp;quot;,
      &amp;quot;database_id&amp;quot;: &amp;quot;51eab7a0-a1a3-a441-ce5b-8da45d3a61ad&amp;quot;
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Take note of the &lt;code&gt;database_name&lt;/code&gt; and &lt;code&gt;database_id&lt;/code&gt;. Next, we&#39;ll edit the &lt;code&gt;wrangler.jsonc&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-json5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json5&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;d1_databases&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;binding&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;DB&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;database_id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;51eab7a0-a1a3-a441-ce5b-8da45d3a61ad&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// &amp;lt;- update this&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;database_name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blog-guestbook&quot;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// &amp;lt;- maybe update this&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, let&#39;s apply our migration:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler d1 migrations apply &lt;span class=&quot;token parameter variable&quot;&gt;--remote&lt;/span&gt; blog-guestbook&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&#39;ll ask if we actually want to apply the migration (Y). Afterwards we should be able to see our tables with the correct columns through the Cloudflare Dashboard.&lt;/p&gt;
&lt;h6 id=&quot;kv&quot;&gt;KV&lt;/h6&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/kv/&quot;&gt;KV&lt;/a&gt; is another service from Cloudflare that implements a simple Key/Value store that is optimized for quick reads - which makes it perfect for caching. KV stores do not have complicated columns, etc. You can create/read/update/delete keys and their values and that&#39;s it.&lt;/p&gt;
&lt;p&gt;We&#39;ll use two &amp;quot;tables&amp;quot; (called namespaces) to store the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a rate limiting store where the IPs of people using the guestbook are entered and if the try to create more than five guestbook entries per minute they get rate limited&lt;/li&gt;
&lt;li&gt;a cache for the guestbook entries, since going to &lt;code&gt;/guestbook/&lt;/code&gt; fetches all entries at once at the moment, we don&#39;t want to hit the database all the time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So let&#39;s create those namespaces:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler kv:namespace create &lt;span class=&quot;token string&quot;&gt;&quot;RATE_LIMIT&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler kv:namespace create &lt;span class=&quot;token string&quot;&gt;&quot;GUESTBOOK_CACHE&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After each run of the command, we get another bit of json we can add to our wrangler.jsonc configuration file. Which in the end should look something like this:&lt;/p&gt;
&lt;pre class=&quot;language-JSON5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-JSON5&quot;&gt;{
  //...
  &quot;kv_namespaces&quot;: [
      {
        &quot;binding&quot;: &quot;RATE_LIMIT&quot;,
        &quot;id&quot;: &quot;91b5e789d42744aar802aace073ed882&quot;,
      },
      {
        &quot;binding&quot;: &quot;GUESTBOOK_CACHE&quot;,
        &quot;id&quot;: &quot;gg19ede5038147ccbcc2a90f65495f92&quot;,
      }
  ],
  //...
}&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&quot;secret&quot;&gt;Secret&lt;/h6&gt;
&lt;p&gt;Because we&#39;re going to have a few routes that are not supposed to be used by anyone else but the admin of the blog, we&#39;ll create a secret API-Key that we&#39;ll check for when these admin routes are hit.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/workers/configuration/secrets/&quot;&gt;A secret&lt;/a&gt; is in practice nothing else than an environment variable. But in this case it is masked and not part of the source code repo. You create these by using wrangler:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler secret put ADMIN_API_KEY&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wrangler is going to ask for the value and then it&#39;ll save the secret. You can refer to it as if it was just a normal environment variable.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn6&quot; id=&quot;fnref6&quot;&gt;[6]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h5 id=&quot;preview-environment&quot;&gt;Preview Environment&lt;/h5&gt;
&lt;p&gt;Okay, moving on the preview environment. The reason why we want this environment is that even though we can - and should - develop our little worker mostly locally, it is still a good idea to test the worker in its actual environment.&lt;/p&gt;
&lt;h6 id=&quot;database-2&quot;&gt;Database&lt;/h6&gt;
&lt;p&gt;Let&#39;s create a preview database:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler d1 create blog-guestbook_preview&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This time we only need the id of the database. We will extend our already existing d1 binding:&lt;/p&gt;
&lt;pre class=&quot;language-json5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json5&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;d1_databases&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;binding&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;DB&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;database_id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;51eab7a0-a1a3-a441-ce5b-8da45d3a61ad&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;database_name&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;blog-guestbook&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;preview_database_id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;bbe2ce46-acfc-4072-817d-5441a90c7419&quot;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;//&amp;lt;- new&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And now we&#39;ll apply the migration:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler d1 migrations apply &lt;span class=&quot;token parameter variable&quot;&gt;--preview&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--remote&lt;/span&gt; blog-guestbook&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&quot;kv-2&quot;&gt;KV&lt;/h6&gt;
&lt;p&gt;Let&#39;s add preview ids to our KV namespaces next:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler kv:namespace create &lt;span class=&quot;token string&quot;&gt;&quot;RATE_LIMIT&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--preview&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler kv:namespace create &lt;span class=&quot;token string&quot;&gt;&quot;GUESTBOOK_CACHE&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--preview&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In both cases we get a JSON looking like this:&lt;/p&gt;
&lt;pre class=&quot;language-JSON5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-JSON5&quot;&gt;{
  &quot;kv_namespaces&quot;: [
    {
      &quot;binding&quot;: &quot;RATE_LIMIT&quot;,
      &quot;preview_id&quot;: &quot;b1ad7e6dc2a8441087a546578c8de2b6&quot;
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Take note of the &lt;code&gt;preview_id&lt;/code&gt; line and copy it:&lt;/p&gt;
&lt;pre class=&quot;language-JSON5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-JSON5&quot;&gt;{
  //...
  &quot;kv_namespaces&quot;: [
      {
        &quot;binding&quot;: &quot;RATE_LIMIT&quot;,
        &quot;id&quot;: &quot;91b5e789d42744aar802aace073ed882&quot;,
        &quot;preview_id&quot;: &quot;b1ad7e6dc2a8441087a546578c8de2b6&quot; // &lt;- here...
      },
      {
        &quot;binding&quot;: &quot;GUESTBOOK_CACHE&quot;,
        &quot;id&quot;: &quot;gg19ede5038147ccbcc2a90f65495f92&quot;,
        &quot;preview_id&quot;: &quot;93c1cb783b24461fba02afb20566c34e&quot; // &lt;- ... and here
      }
  ],
  //...
}&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&quot;secret-2&quot;&gt;Secret&lt;/h6&gt;
&lt;p&gt;The preview environment is going to be reusing the prod secret. The big difference between prod and preview is simply the data storage. So nothing needs to be done here.&lt;/p&gt;
&lt;h5 id=&quot;local-environment&quot;&gt;Local Environment&lt;/h5&gt;
&lt;h6 id=&quot;database-3&quot;&gt;Database&lt;/h6&gt;
&lt;p&gt;For the local environment, the database will be created for us, based on the binding configuration in the wrangler config file. We do have to apply the migration to it though. Which is done as follows:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx wrangler d1 migrations apply &lt;span class=&quot;token parameter variable&quot;&gt;--local&lt;/span&gt; blog-guestbook&lt;/code&gt;&lt;/pre&gt;
&lt;h6 id=&quot;kv-3&quot;&gt;KV&lt;/h6&gt;
&lt;p&gt;Nothing to do here. These will be created locally, based on our config from earlier.&lt;/p&gt;
&lt;h6 id=&quot;secret-3&quot;&gt;Secret&lt;/h6&gt;
&lt;p&gt;For our local env to work we need a not-so-secret secret for the &lt;code&gt;ADMIN_API_KEY&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;First we create a &lt;code&gt;.dev.vars&lt;/code&gt; file in the root of our repo and then add there something like this:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token assign-left variable&quot;&gt;ADMIN_API_KEY&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;123&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;coding-setup&quot;&gt;Coding Setup&lt;/h4&gt;
&lt;h5 id=&quot;code-organization-and-configuration&quot;&gt;Code-Organization And Configuration&lt;/h5&gt;
&lt;p&gt;Let&#39;s start by preparing the repo for a good editing experience by adding a &lt;a href=&quot;https://editorconfig.org&quot;&gt;&lt;code&gt;.editorconfig&lt;/code&gt; file&lt;/a&gt; to the repo:&lt;/p&gt;
&lt;pre class=&quot;language-editorconfig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-editorconfig&quot;&gt;&lt;span class=&quot;token key attr-name&quot;&gt;root&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; true&lt;/span&gt;

&lt;span class=&quot;token section selector&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;charset&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; utf-8&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;end_of_line&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; lf&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;indent_style&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; tab&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;insert_final_newline&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; true&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;max_line_length&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; 120&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;tab_width&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; 4&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;trim_trailing_whitespace&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; true&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next, we&#39;ll make sure that we can autoformat and lint any added code. For this, we&#39;ll use prettier and eslint.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://prettier.io/docs/install&quot;&gt;Install prettier according to its instructions.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://eslint.org/docs/latest/use/getting-started#quick-start&quot;&gt;Install eslint according to its instructions.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/prettier/eslint-config-prettier?tab=readme-ov-file#installation&quot;&gt;Install eslint-config-prettier to make eslint and prettier play together nicely&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Configure your editor to use these tools.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The template we initially used to get going defined the entrypoint as &lt;code&gt;/src/index.ts&lt;/code&gt;, so we&#39;ll add all our newly written code under &lt;code&gt;src&lt;/code&gt; going forward as well.&lt;/p&gt;
&lt;h5 id=&quot;testing&quot;&gt;Testing&lt;/h5&gt;
&lt;p&gt;Manual testing is nice, but we should also do some automated testing. Cloudflare recommends using vitest, so we&#39;ll do just that.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/workers/testing/vitest-integration/get-started/write-your-first-test/&quot;&gt;Install and Configure Vitst according to Cloudflare&#39;s Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the end we should have installed a couple of packages, a &lt;code&gt;vitest.config.ts&lt;/code&gt; in the repo root and an additional &lt;code&gt;tsconfig.json&lt;/code&gt; inside the &lt;code&gt;test&lt;/code&gt; folder.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fn7&quot; id=&quot;fnref7&quot;&gt;[7]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;We&#39;re now ready to write tests.&lt;/p&gt;
&lt;p&gt;Let&#39;s write a dummy test and run it to see that everything works as expected. Create a file in test named &lt;code&gt;dummy.test.ts&lt;/code&gt; and add the following:&lt;/p&gt;
&lt;pre class=&quot;language-ts&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-ts&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; describe&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; expect&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; it &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; createExecutionContext&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; env&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; waitOnExecutionContext &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;cloudflare:test&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;describe&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;dummy&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;should pass&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;expect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toBe&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;should be able to use cloudflare workers integration&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;expect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toBeDefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;expect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;createExecutionContext&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toBeDefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token function&quot;&gt;expect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;waitOnExecutionContext&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toBeDefined&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We&#39;ll add more tests later, but this should show us that testing is setup correctly and that everything is set up correctly. You can either run this in your IDE or through the commandline using:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;npx vitest&lt;/code&gt;&lt;/pre&gt;
&lt;h5 id=&quot;husky&quot;&gt;Husky&lt;/h5&gt;
&lt;p&gt;To ensure that any code committed is according to our coding style standards and passes our tests, let&#39;s also use Husky, a handy tool which will make sure any code about to be committed to source control is ready.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://typicode.github.io/husky/get-started.html#husky-init-recommended&quot;&gt;Install it according to its docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This installs Husky and a git hook that tries to run &lt;code&gt;npm run test&lt;/code&gt; which doesn&#39;t exist at this point. So let&#39;s add a test script and a linting a formatting script as well to our &lt;code&gt;package.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-json5&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json5&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;prepare&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;husky&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// this one should already exist&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;test&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest run&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;test:watch&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;vitest run --watch&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;lint&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;lint:fix&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;eslint --fix&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;format&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --check&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;format:write&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prettier . --write&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The test:watch, lint:fix and format:write scripts are not needed for husky, but for development. But since we were already doing stuff in the file, why not add them?&lt;/p&gt;
&lt;p&gt;Let&#39;s update the git hook to use test, lint and format. Edit the file &lt;code&gt;.husky/pre-commit&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm run test
npm run format
npm run lint
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it. Now anytime we update the worker, we ensure that those updates don&#39;t accidentally change the code for worse.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I &lt;em&gt;do&lt;/em&gt; add alt text to all other pictures that accompany my writing, though. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;This will be skippable of course. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;The following is not complete, there are creation dates, indexes and triggers for the updated_at columns in the actual migration. See below. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In theory we could&#39;ve have implemented the whole guestbook using pages functions. I didn&#39;t do that because I wanted to know how workers work. But it would&#39;ve been totally feasible to do so using only the pages application. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn5&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;m not 100% sure this is a good idea, as there may have been times where there were more than 1 doc pic per post, but for now, we&#39;ll work with this. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref5&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn6&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Normal env vars can be set in your wrangler.jsonc. We just don&#39;t have a need for them here. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref6&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn7&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Make sure btw. that you change the line where it uses a wrangler.toml. We&#39;re using a wrangler.jsonc after all. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/#fnref7&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Creating A Guestbook To Crowd Source Alt Texts - Part 1 (Architecture &amp; Setup)

        https://blog.martin-haehnel.de/2025/03/09/guestbook-pt1/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1198 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/08/dailydogo1198/" />
      <updated>2025-03-08T20:20:42Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/08/dailydogo1198/</id>
      <content type="html">&lt;p&gt;DailyDogo 1198 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1198-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1198 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1197 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/07/dailydogo1197/" />
      <updated>2025-03-07T21:55:06Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/07/dailydogo1197/</id>
      <content type="html">&lt;p&gt;DailyDogo 1197 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1197-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1197 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1196 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/06/dailydogo1196/" />
      <updated>2025-03-06T20:31:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/06/dailydogo1196/</id>
      <content type="html">&lt;p&gt;DailyDogo 1196 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1196-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1196 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1195 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/05/dailydogo1195/" />
      <updated>2025-03-05T19:11:00Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/05/dailydogo1195/</id>
      <content type="html">&lt;p&gt;DailyDogo 1195 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1195-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1195 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1194 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/04/dailydogo1194/" />
      <updated>2025-03-04T19:29:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/04/dailydogo1194/</id>
      <content type="html">&lt;p&gt;DailyDogo 1194 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1194-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1194 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1193 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/03/dailydogo1193/" />
      <updated>2025-03-03T20:05:15Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/03/dailydogo1193/</id>
      <content type="html">&lt;p&gt;DailyDogo 1193 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1193-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1193 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1192 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/02/dailydogo1192/" />
      <updated>2025-03-02T20:36:07Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/02/dailydogo1192/</id>
      <content type="html">&lt;p&gt;DailyDogo 1192 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1192-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1192 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1191 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/03/01/dailydogo1191/" />
      <updated>2025-03-01T20:41:49Z</updated>
      <id>https://blog.martin-haehnel.de/2025/03/01/dailydogo1191/</id>
      <content type="html">&lt;p&gt;DailyDogo 1191 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1191-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1191 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1190 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/28/dailydogo1190/" />
      <updated>2025-02-28T22:11:17Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/28/dailydogo1190/</id>
      <content type="html">&lt;p&gt;DailyDogo 1190 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1190-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1190 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1189 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/27/dailydogo1189/" />
      <updated>2025-02-27T20:11:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/27/dailydogo1189/</id>
      <content type="html">&lt;p&gt;DailyDogo 1189 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1189-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1189 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1188 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/26/dailydogo1188/" />
      <updated>2025-02-26T19:20:35Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/26/dailydogo1188/</id>
      <content type="html">&lt;p&gt;DailyDogo 1188 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1188-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1188 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1187 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/25/dailydogo1187/" />
      <updated>2025-02-25T19:33:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/25/dailydogo1187/</id>
      <content type="html">&lt;p&gt;DailyDogo 1187 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1187-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1187 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1186 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/24/dailydogo1186/" />
      <updated>2025-02-24T22:07:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/24/dailydogo1186/</id>
      <content type="html">&lt;p&gt;DailyDogo 1186 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1186-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1186 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1185 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/23/dailydogo1185/" />
      <updated>2025-02-23T21:08:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/23/dailydogo1185/</id>
      <content type="html">&lt;p&gt;DailyDogo 1185 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1185-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1185 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1184 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/22/dailydogo1184/" />
      <updated>2025-02-22T22:28:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/22/dailydogo1184/</id>
      <content type="html">&lt;p&gt;DailyDogo 1184 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1184-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1184 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1183 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/21/dailydogo1183/" />
      <updated>2025-02-21T17:50:40Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/21/dailydogo1183/</id>
      <content type="html">&lt;p&gt;DailyDogo 1183 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1183-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1183 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1182 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/20/dailydogo1182/" />
      <updated>2025-02-20T18:24:21Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/20/dailydogo1182/</id>
      <content type="html">&lt;p&gt;DailyDogo 1182 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1182-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1182 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1181 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/19/dailydogo1181/" />
      <updated>2025-02-19T20:30:07Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/19/dailydogo1181/</id>
      <content type="html">&lt;p&gt;DailyDogo 1181 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1181-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1181 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1180 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/18/dailydogo1180/" />
      <updated>2025-02-18T20:50:01Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/18/dailydogo1180/</id>
      <content type="html">&lt;p&gt;DailyDogo 1180 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1180-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1180 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1179 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/17/dailydogo1179/" />
      <updated>2025-02-16T19:33:44Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/17/dailydogo1179/</id>
      <content type="html">&lt;p&gt;DailyDogo 1179 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1179-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1179 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1178 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/16/dailydogo1178/" />
      <updated>2025-02-16T19:33:44Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/16/dailydogo1178/</id>
      <content type="html">&lt;p&gt;DailyDogo 1178 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1178-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1178 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1177 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/15/dailydogo1177/" />
      <updated>2025-02-15T17:10:58Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/15/dailydogo1177/</id>
      <content type="html">&lt;p&gt;DailyDogo 1177 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1177-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1177 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Remove A Folder From The Generated Permalinks In Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/" />
      <updated>2025-02-15T12:59:27Z</updated>
      <id>https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-04 - Fixed a couple of typos&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;When I moved to Eleventy with this blog, I made the &amp;quot;mistake&amp;quot; to organize my blogposts into a subdirectory called &lt;code&gt;blog&lt;/code&gt;. In this way, I thought it would be easy to hide/reveal the ever-growing collection of subfolders and posts and the &amp;quot;root&amp;quot; of my contents folder would stay the same.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An explanatory screenshot, showing the &amp;amp;quot;blog&amp;amp;quot; folder inside the content folder once open and then closed, with some accompanying text: If this wouldn&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/11ty-permalinks-1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;The other main reason was that with a &lt;code&gt;blog.11ydata.js&lt;/code&gt; file I could add a posts tag to all my blog posts and specify which layout template to use. It looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token string-property property&quot;&gt;&quot;layout&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;However, what I didn&#39;t immediately realize was that the path inside the content folder would become part of the permalink. Looking at the site using the local development server didn&#39;t make that obvious, because the permalink to this file - before the applied fix, see below - would look like this locally:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://localhost:8080/blog/2025/02/15/eleventy-change-permalinks/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But when I then published my posts the URL would look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.martin-haehnel.de/blog/2025/02/15/eleventy-change-permalinks/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And this doubled &lt;code&gt;blog&lt;/code&gt; in the URL bothered me. So I wanted to change it.&lt;/p&gt;
&lt;h3 id=&quot;the-permalink-option-on-individual-posts&quot;&gt;The &lt;code&gt;permalink&lt;/code&gt; Option On Individual Posts&lt;/h3&gt;
&lt;p&gt;Thankfully Eleventy lets us change the permalink behavior of posts by using &lt;code&gt;permalink&lt;/code&gt; in the front matter of a post. I have done this for alle the old posts that had a different permalink scheme, so anything that was written when this was still a hugo-based micro.blog has permalinks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.martin-haehnel.de/2025/01/23/dailydogo.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;even though that file that is the source for this blog post lives under the path:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;content/blog/2025/01/23/dailydogo.md
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;which normally lead to the permalink:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://blog.martin-haehnel.de/blog/2025/01/23/dailydogo/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;but we can overwrite this behavior by adding this to front matter of the post:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;permalink: https://blog.martin-haehnel.de/2025/01/23/dailydogo.html
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;that&#39;s all that is needed to preserve the old permalinks.&lt;/p&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;If you try &lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/23/dailydogo.html&quot;&gt;go to that URL&lt;/a&gt; you&#39;ll notice that the &lt;code&gt;.html&lt;/code&gt; is missing from the URL. But the post is still found. My understanding is that this is done to make the URL &amp;quot;better&amp;quot;. Read more in the Eleventy docs &lt;a href=&quot;https://www.11ty.dev/docs/permalinks/#cool-uris-don-t-change&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&quot;using-permalink-in-data-files&quot;&gt;Using &lt;code&gt;permalink&lt;/code&gt; In Data Files&lt;/h3&gt;
&lt;p&gt;Just as setting tags and layouts you can also manipulate the permalink scheme for all posts contained within a folder. Because you can&#39;t set a concrete permalink in this data file, you&#39;ll have to do it dynamically.&lt;/p&gt;
&lt;h4 id=&quot;quick-excursion-to-the-data-cascade&quot;&gt;Quick Excursion To The Data Cascade&lt;/h4&gt;
&lt;p&gt;But first lets talk shortly about what is called &lt;a href=&quot;https://www.11ty.dev/docs/data-cascade/&quot;&gt;the &amp;quot;data cascade&amp;quot; within Eleventy&lt;/a&gt;: You can define metadata for your posts in more than one place. Two locations where you can define metadata we already talked about so far in this post are the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;in folders using 11ydata files&lt;/li&gt;
&lt;li&gt;in the front matter of posts themselves&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There are actually a bunch more places where you could put stuff, but if we only talk about these two then anything you put into data files will be merged &amp;quot;over&amp;quot; by what you put in the front matter of posts. This means a couple of different things depending on what kind of data type we&#39;re talking about. For tags that means they are combined.&lt;/p&gt;
&lt;p&gt;Example: This post has the tag &amp;quot;Blog&amp;quot; set and the data file specifies the &amp;quot;posts&amp;quot; tag. So this post will have both the &amp;quot;Blog&amp;quot; and the &amp;quot;posts&amp;quot; tag applied.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; The data file also specifies a &lt;code&gt;layout&lt;/code&gt; key for all blog posts. If I wanted, I could specify a specific layout for only one post by adding a &lt;code&gt;layout&lt;/code&gt; key in the post instead.&lt;/p&gt;
&lt;p&gt;If &lt;code&gt;blog.11ydata.js&lt;/code&gt; looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token literal-property property&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		&lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;token string-property property&quot;&gt;&quot;layout&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But the front matter of our post looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;How To Remove A Folder From The Generated Permalinks In Eleventy&quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2025&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;02&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;15T14&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;59&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;27+0200
&lt;span class=&quot;token key atrule&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/post-special.njk&quot;&lt;/span&gt;
&lt;span class=&quot;token key atrule&quot;&gt;tags&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Blog&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then the layout for this specific post will be &lt;code&gt;layouts/post-special.njk&lt;/code&gt;, while all other posts will retain &lt;code&gt;layouts/post.njk&lt;/code&gt;. So we can have the best of both worlds: We can define a default for a subset of our posts while also overwriting that default, if we want to. Cool.&lt;/p&gt;
&lt;h4 id=&quot;dynamic-permalinks&quot;&gt;Dynamic Permalinks&lt;/h4&gt;
&lt;p&gt;Per default Eleventy creates permalinks by taking the path and file name starting from the content file. So this:&lt;/p&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;/blog/2025/02/15/eleventy-change-permalinks.md&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;will be turned into this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/blog/2025/02/15/eleventy-change-permalinks/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We can overwrite this default behavior in our data file like so:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;quot;permalink&amp;quot;: &amp;quot;/blog/2025/02/15/eleventy-change-permalinks/foo/index.html&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this way we end up with the following:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/blog/2025/02/15/eleventy-change-permalinks/foo/
&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;You&#39;ll notice that the index.html part is not part of the URL that&#39;s another instance of making URLs more durable/&amp;quot;better&amp;quot;. Read more in the Eleventy docs &lt;a href=&quot;https://www.11ty.dev/docs/permalinks/#cool-uris-don-t-change&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In our case, we simply want to remove the blog from the generated permalink. This can be done like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;quot;permalink&amp;quot;: &amp;quot;2025/02/15/eleventy-change-permalinks/index.html&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;.slice(5)&lt;/code&gt; removes the first five characters from &lt;code&gt;/blog/2025/02/15/eleventy-change-permalinks.md&lt;/code&gt; so the &lt;code&gt;/blog&lt;/code&gt; part.&lt;/p&gt;
&lt;p&gt;We end up with what we wanted all along:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/2025/02/15/eleventy-change-permalinks/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So what was this talk about the data cascade about? Well, I didn&#39;t have the time to immediately rectify the problem with the added &lt;code&gt;blog&lt;/code&gt; in the URL and therefore have a handful of post that were published in this way and they should stay reachable that way. I also have almost 2k old posts that have different permalinks all together.&lt;/p&gt;
&lt;p&gt;If you look at the URL of this post, you&#39;ll see that it looks how I want it to look. But my recent post about &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&quot;&gt;adding footnotes to Eleventy&lt;/a&gt; will have its permalink still including the &lt;code&gt;blog&lt;/code&gt; part, because that&#39;s how it was published. And my old posts using their own permalink scheme are similarly unaffected. All thanks to hard coding the correct permalink values into the respective posts&#39; front matter and otherwise using our new default permalink scheme.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/&quot;&gt;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/&lt;/a&gt; - this post right here!&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&quot;&gt;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&lt;/a&gt; - this one still has the extra &lt;code&gt;blog&lt;/code&gt; in the permalink&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/23/dailydogo.html&quot;&gt;https://blog.martin-haehnel.de/2025/01/23/dailydogo.html&lt;/a&gt; - old post with different scheme&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these can exist at the same time, and we can still have a default for all of our  posts that is different from whatever Eleventy is doing out of the box.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt; I love this flexibility.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Technically the &lt;a href=&quot;https://github.com/11ty/eleventy-base-blog/&quot;&gt;eleventy-base-blog&lt;/a&gt; which is the base... for this blog created that folder,but I ran with it without realizing the implications for permalinks. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;There is no visible posts tag (e.g. on the &lt;a href=&quot;https://blog.martin-haehnel.de/tags/&quot;&gt;tags&lt;/a&gt; page) , because this is purely a tag eleventy needs to paginate my posts. It is therefore filtered out when constructing the tags overview page and individual tag pages. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;And only for these! None of my other pages need to adopt that new default, because it is scoped to this specific &lt;code&gt;blog&lt;/code&gt; folder within my &lt;code&gt;content&lt;/code&gt; folder. &lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Remove A Folder From The Generated Permalinks In Eleventy

        https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1176 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/14/dailydogo1176/" />
      <updated>2025-02-14T20:30:05Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/14/dailydogo1176/</id>
      <content type="html">&lt;p&gt;DailyDogo 1176 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1176-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1176 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1175 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/13/dailydogo1175/" />
      <updated>2025-02-13T20:11:17Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/13/dailydogo1175/</id>
      <content type="html">&lt;p&gt;DailyDogo 1175 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1175-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1175 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Add Search To Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/12/search-in-eleventy/" />
      <updated>2025-02-12T20:32:02Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/12/search-in-eleventy/</id>
      <content type="html">&lt;p&gt;If you have an Eleventy-based site, there are a few options you can take to add search to your page. One low-fi solution that I use on this website at the moment is based on a big JSON file and some JavaScript that searches through that JSON. This solution won&#39;t work so well for big-ish websites. This blog has about 2k posts and the full JSON-file is 1.3 MB at the moment. It works on my connection, but that&#39;s not nothing. So keep that in mind.&lt;/p&gt;
&lt;p&gt;Here&#39;s how it works.&lt;/p&gt;
&lt;h3 id=&quot;create-the-big-json-file&quot;&gt;Create The Big JSON File&lt;/h3&gt;
&lt;p&gt;The big JSON file is just a &lt;a href=&quot;https://www.jsonfeed.org&quot;&gt;JSON feed&lt;/a&gt; which you can generate using the &lt;a href=&quot;https://www.11ty.dev/docs/plugins/rss/&quot;&gt;Eleventy RSS plugin&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;For this to work you&#39;ll need to use manual feed templates. If you happen to use the vanilla eleventy base blog&#39;s feed implementation, then you&#39;ll need to make some changes. Read on! I&#39;ll walk you through it.&lt;/p&gt;
&lt;/div&gt;
&lt;h4 id=&quot;re-configure-the-rss-plugin&quot;&gt;(Re-)Configure the RSS plugin&lt;/h4&gt;
&lt;p&gt;First thing we&#39;ll need to do is to configure the Eleventy RSS plugin. Here&#39;s what you&#39;ll need to add to your &lt;code&gt;eleventy.config.js&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; pluginRss &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;@11ty/eleventy-plugin-rss&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;eleventyConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addPlugin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;pluginRss&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you are using a recent version of the eleventy-base-blog, you might see this kind of config:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addPlugin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;feedPlugin&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;atom&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// or &quot;rss&quot;, &quot;json&quot;&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;outputPath&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;/feed/feed.xml&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;stylesheet&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;pretty-atom-feed.xsl&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;templateData&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;eleventyNavigation&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Feed&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;order&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;collection&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;posts&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;limit&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
		&lt;span class=&quot;token literal-property property&quot;&gt;metadata&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;en&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Blog Title&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;subtitle&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;This is a longer description about your blog.&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;base&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;token literal-property property&quot;&gt;author&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token literal-property property&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Your Name&quot;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You want to replace that with the much shorter version I have provided above. This longer config uses a so-called &amp;quot;virtual template&amp;quot; to provide the normal feed to your blog. However since we want more than one feed (the standard feed and the new &amp;quot;big json file&amp;quot; archive feed) we need to go the &amp;quot;manual template&amp;quot; route.&lt;/p&gt;
&lt;h4 id=&quot;re-add-the-basic-feed&quot;&gt;(Re-)Add The Basic Feed&lt;/h4&gt;
&lt;p&gt;Because most people will want to have a basic (non-json) feed for their site as well and because it exists in the base blog, before we changed everything, let&#39;s start by adding a basic feed to the site, the manual way. In your content folder create a &lt;code&gt;feed.njk&lt;/code&gt; with the following contents (change the metadata, of course):&lt;/p&gt;
&lt;pre class=&quot;language-twig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-twig&quot;&gt;---json
{
  &quot;permalink&quot;: &quot;feed.xml&quot;,
  &quot;layout&quot;: &quot;layouts/empty.njk&quot;,
  &quot;eleventyExcludeFromCollections&quot;: true,
  &quot;metadata&quot;: {
    &quot;title&quot;: &quot;My Blog about Boats&quot;,
    &quot;description&quot;: &quot;I am writing about my experiences as a naval navel-gazer.&quot;,
    &quot;language&quot;: &quot;en&quot;,
    &quot;base&quot;: &quot;https://example.com/&quot;,
    &quot;author&quot;: {
      &quot;name&quot;: &quot;Boaty McBoatFace&quot;
    }
  }
}
---
&lt;span class=&quot;token prolog&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;feed&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;xmlns&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;http://www.w3.org/2005/Atom&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;&lt;span class=&quot;token namespace&quot;&gt;xml:&lt;/span&gt;lang&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;language &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;lang &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;subtitle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;description &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;subtitle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; permalink &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; htmlBaseUrl&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;self&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; addPathPrefixToFullUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;updated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; collections&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;posts &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; getNewestCollectionItemDate &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; dateToRfc3339 &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;updated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; addPathPrefixToFullUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;author&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;author&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;name &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;author&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;for&lt;/span&gt; post &lt;span class=&quot;token operator&quot;&gt;in&lt;/span&gt; collections&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;posts &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; reverse &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; htmlBaseUrl&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endset&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;title&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;updated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; dateToRfc3339 &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;updated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;content&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;html&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; renderTransforms&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;content&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;entry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endfor&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;feed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is the &amp;quot;Atom&amp;quot; sample feed template &lt;a href=&quot;https://www.11ty.dev/docs/plugins/rss/#sample-feed-templates&quot;&gt;from the Eleventy Docs&lt;/a&gt; with one important change: We added &lt;code&gt;&amp;quot;layout&amp;quot;: &amp;quot;layouts/empty.njk&amp;quot;,&lt;/code&gt; to the frontmatter. This was done, because my content folder includes a &lt;code&gt;content.11tydata.js&lt;/code&gt; &lt;a href=&quot;https://www.11ty.dev/docs/data-js/&quot;&gt;data file&lt;/a&gt; which has the following contents:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/home.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But for our feed, that&#39;s not what we want. So we overwrite the layout in the feed template with an empty one. That &lt;code&gt;layouts/empty.njk&lt;/code&gt; looks like this:&lt;/p&gt;
&lt;pre class=&quot;language-twig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-twig&quot;&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; content &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; safe &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Phew! Let&#39;s move on to what we were actually going to accomplish.&lt;/p&gt;
&lt;h4 id=&quot;create-an-additional-json-feed&quot;&gt;Create An Additional JSON-Feed&lt;/h4&gt;
&lt;p&gt;Create a file called &lt;code&gt;archive.njk&lt;/code&gt;. Mine lives in &lt;code&gt;content/feeds&lt;/code&gt;. This is again basically just the sample json feed from the docs, except that I changed the permalink.&lt;/p&gt;
&lt;pre class=&quot;language-twig&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-twig&quot;&gt;---json
{
  &quot;permalink&quot;: &quot;feeds/archive.json&quot;,
  &quot;eleventyExcludeFromCollections&quot;: true,
  &quot;metadata&quot;: {
    &quot;title&quot;: &quot;My Blog about Boats&quot;,
    &quot;description&quot;: &quot;I am writing about my experiences as a naval navel-gazer.&quot;,
    &quot;language&quot;: &quot;en&quot;,
    &quot;base&quot;: &quot;https://example.com/&quot;,
    &quot;author&quot;: {
      &quot;name&quot;: &quot;Boaty McBoatFace&quot;
    }
  }
}
---
{
  &quot;version&quot;: &quot;https://jsonfeed.org/version/1.1&quot;,
  &quot;title&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
  &quot;language&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;language &lt;span class=&quot;token operator&quot;&gt;or&lt;/span&gt; page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;lang &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
  &quot;home_page_url&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; addPathPrefixToFullUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
  &quot;feed_url&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; permalink &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; htmlBaseUrl&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
  &quot;description&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;description &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
  &quot;authors&quot;: [
    {
      &quot;name&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;author&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;name &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;
    }
  ],
  &quot;items&quot;: [
    &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;for&lt;/span&gt; post &lt;span class=&quot;token operator&quot;&gt;in&lt;/span&gt; collections&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;posts &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; reverse &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;set&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; htmlBaseUrl&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endset&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
    {
      &quot;id&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
      &quot;url&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; absolutePostUrl &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
      &quot;title&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;,
      &quot;content_html&quot;: &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;if&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; renderTransforms&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;page&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; metadata&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;base&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; dump &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; safe &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;&quot;&quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;,
      &quot;date_published&quot;: &quot;&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{{&lt;/span&gt; post&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; dateToRfc3339 &lt;span class=&quot;token delimiter punctuation&quot;&gt;}}&lt;/span&gt;&lt;/span&gt;&quot;
    }
    &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;not&lt;/span&gt; loop&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;last &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;,&lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endif&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token twig language-twig&quot;&gt;&lt;span class=&quot;token delimiter punctuation&quot;&gt;{%-&lt;/span&gt; &lt;span class=&quot;token tag-name keyword&quot;&gt;endfor&lt;/span&gt; &lt;span class=&quot;token delimiter punctuation&quot;&gt;%}&lt;/span&gt;&lt;/span&gt;
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additionally, I have a data file in that folder &lt;code&gt;feeds.11tydata.js&lt;/code&gt; which has these contents:&lt;/p&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;layout&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;layouts/empty.njk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In other words, it specifies the &lt;code&gt;empty.njk&lt;/code&gt; layout for all feeds that live in this folder.&lt;/p&gt;
&lt;p&gt;Finally, we have finished the preparatory work for the search.&lt;/p&gt;
&lt;h3 id=&quot;create-the-search-page&quot;&gt;Create The Search Page&lt;/h3&gt;
&lt;p&gt;This one&#39;s easier. Here&#39;s the template for the &lt;code&gt;search.md&lt;/code&gt; file:&lt;/p&gt;
&lt;pre class=&quot;language-html&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;---
title: &quot;Search&quot;
eleventyNavigation:
  key: &quot;Search&quot;
  order: 100
date: 2021-09-14T16:26:36+0200
permalink: &quot;/search/&quot;
---

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;language&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;javascript&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;span class=&quot;token language-javascript&quot;&gt;

&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; archive_results &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;runSearch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; results_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;list_results&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	results_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;innerHTML &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; archive_results&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;items&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; item &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; archive_results&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;items&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; title_lower &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; text_lower &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content_html&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;title_lower&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;||&lt;/span&gt; text_lower&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; s  &lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; p_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;p&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; link_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;a&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; d &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Date&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;date_published&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; date_s &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Date&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;d&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toISOString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; date_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createTextNode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date_s&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				link_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;date_node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				link_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;href &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; title_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
              		title_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
                  title_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;innerHTML &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;: &amp;lt;b&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&amp;lt;/b&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
					s &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;title &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;: &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content_html&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
				s &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; item&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;content_html&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;s&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
					s &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;substr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; text_node &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        text_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;innerHTML &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;: &quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; s&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				p_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;link_node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;title_node &lt;span class=&quot;token operator&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
					p_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;title_node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
				p_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;text_node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
				results_node&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;appendChild&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;p_node&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;submitSearch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;q&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;runSearch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

	&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; url &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;location&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;href&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	url&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;searchParams&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;q&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; q&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	history&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;pushState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; url&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;DOMContentLoaded&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token function&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;/feeds/archive.json&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;then&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;response&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; response&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;then&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;data&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
		archive_results &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; data&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; url &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; window&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;location&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;href&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; params &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;URLSearchParams&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;url&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;search&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; q &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; params&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;q&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
			document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getElementById&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;input_search&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;value &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; q&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;token function&quot;&gt;runSearch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token style&quot;&gt;&lt;span class=&quot;token language-css&quot;&gt;

&lt;span class=&quot;token selector&quot;&gt;.field&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 270px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 34px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 13px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;font-weight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 400&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 12px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 2px solid #eee&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;margin-top&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 20px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;margin-bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 20px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 17px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;token property&quot;&gt;-webkit-appearance&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;form&lt;/span&gt; &lt;span class=&quot;token special-attr&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt;onSubmit&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token value javascript language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
	&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;field&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;q&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;input_search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;placeholder&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;Search&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token special-attr&quot;&gt;&lt;span class=&quot;token attr-name&quot;&gt;onChange&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;token value javascript language-javascript&quot;&gt;&lt;span class=&quot;token function&quot;&gt;submitSearch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;value&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;toLowerCase&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;list_results&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This template is a slightly adapted version of &lt;a href=&quot;https://github.com/microdotblog/plugin-search-page/blob/master/content/search.md&quot;&gt;this template&lt;/a&gt;, which was meant for a hugo-based blog, but it works beautifully for our purposes here, too.&lt;/p&gt;
&lt;p&gt;A quick code walk-through:&lt;/p&gt;
&lt;p&gt;When the search page is fully loaded (DOMContentLoaded) we download (fetch) the archive.json and save its contents into a variable. If the user then tries to search using the search field, we go through the entries of archive.json and check if either the title or the body of a post includes our search term, if it does we create a little bit of html using Javascript which in turn gets then displayed on our search page. We also put the search term in the url and manipulate the browser history, so that the user can go back to their previous searches.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        How To Add Search To Eleventy

        https://blog.martin-haehnel.de/blog/2025/02/12/search-in-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1174 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/12/dailydogo1174/" />
      <updated>2025-02-12T20:21:04Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/12/dailydogo1174/</id>
      <content type="html">&lt;p&gt;DailyDogo 1174 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1174-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1174 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1173 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/11/dailydogo1173/" />
      <updated>2025-02-11T16:59:06Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/11/dailydogo1173/</id>
      <content type="html">&lt;p&gt;DailyDogo 1173 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1173-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1173 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How To Add Footnotes To Eleventy



        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/" />
      <updated>2025-02-11T16:58:07Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-02-11 - Created this note&lt;/li&gt;
&lt;li&gt;2025-02-12 - Added a link to the official Eleventy docs about adding plugins to markdown-it&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;&lt;em&gt;The following won&#39;t work if you write your posts in something else than markdown! Kinda obvious, but I just thought I&#39;d point that out.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;An easy way to add footnotes&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; to Eleventy is to use an existing plugin for &lt;a href=&quot;https://github.com/markdown-it/markdown-it&quot;&gt;markdown-it&lt;/a&gt;, which is what Eleventy uses internally to parse markdown.&lt;/p&gt;
&lt;h3 id=&quot;add-markdown-it-footnote-to-your-project&quot;&gt;Add markdown-it-footnote to your project&lt;/h3&gt;
&lt;pre class=&quot;language-sh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; markdown-it-footnote &lt;span class=&quot;token parameter variable&quot;&gt;--save&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;add-markdown-it-footnote-to-your-eleventy-config-js&quot;&gt;Add markdown-it-footnote to your eleventy.config.js&lt;/h3&gt;
&lt;pre class=&quot;language-js&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; footnote_plugin &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;markdown-it-footnote&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;// ...&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;eleventyConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
  eleventyConfig&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;amendLibrary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;md&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;mdLib&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; mdLib&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;footnote_plugin&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;use-footnotes-in-your-blog-posts&quot;&gt;Use footnotes in your blog posts&lt;/h3&gt;
&lt;pre class=&quot;language-markdown&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;An easy way to add footnotes[^1]...

&lt;span class=&quot;token url-reference url&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;^1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Like&lt;/span&gt; this one.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also do a pandoc-style inline-footnote&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; instead.&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;You can also do a pandoc-style inline-footnote^[Like this.] instead.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;P.S.: In order to make these examples, I had to use &lt;a href=&quot;https://www.11ty.dev/docs/plugins/syntaxhighlight/&quot;&gt;Eleventy&#39;s highlighter plugin&lt;/a&gt; (that&#39;s a plugin for Eleventy, not markdown-it!) and use its nunjucks custom tag, since markdown-it-footnote parsed all the footnotes in the codeblock, too - which of course defeated the purpose. If that is ever something you need to do (showing some markdown syntax without it getting parsed), it works like this:&lt;/p&gt;
&lt;pre class=&quot;language-markdown&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-markdown&quot;&gt;Hello I&#39;m markdown that is parsed by markdown-it.
{% highlight &quot;markdown&quot; %}
And I&#39;m not parsed.[^1]
&lt;span class=&quot;token url-reference url&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;^1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; So&lt;/span&gt; footnote syntax is visible.
{% endhighlight %}
And now this markdown would be parsed normally again.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;P.P.S.: In order to make the nunjucks custom tags visible in the last example we had to use the escape tags:&lt;/p&gt;
&lt;pre class=&quot;language-md&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-md&quot;&gt;{% raw %}{% highlight/endhighlight %}{% endraw %}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;P.P.P.S: And that last one used a markdown tripple backtick codeblock with doubled raw/endraw tags, so that &lt;em&gt;those&lt;/em&gt; would become visible. Okay okay. I&#39;ll stop there... Finally, &lt;a href=&quot;https://www.11ty.dev/docs/languages/markdown/#add-your-own-plugins&quot;&gt;here&#39;s the official Eleventy documentation on how to add your own plugins to markdown-it.&lt;/a&gt;&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Like this one. &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Like this. &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        How To Add Footnotes To Eleventy

        https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1172 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/10/dailydogo1172/" />
      <updated>2025-02-10T20:13:20Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/10/dailydogo1172/</id>
      <content type="html">&lt;p&gt;DailyDogo 1172 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1172-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1172 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1171 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/09/dailydogo1171/" />
      <updated>2025-02-09T19:05:58Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/09/dailydogo1171/</id>
      <content type="html">&lt;p&gt;DailyDogo 1171 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1171-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1171 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1170 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/08/dailydogo1170/" />
      <updated>2025-02-08T19:11:07Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/08/dailydogo1170/</id>
      <content type="html">&lt;p&gt;DailyDogo 1170 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1170-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1170 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1169 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/07/dailydogo1169/" />
      <updated>2025-02-07T21:11:08Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/07/dailydogo1169/</id>
      <content type="html">&lt;p&gt;DailyDogo 1169 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1169-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1169 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1168 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/06/dailydogo1168/" />
      <updated>2025-02-06T21:53:32Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/06/dailydogo1168/</id>
      <content type="html">&lt;p&gt;DailyDogo 1168 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1168-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1168 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1167 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/05/dailydogo1167/" />
      <updated>2025-02-05T19:45:52Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/05/dailydogo1167/</id>
      <content type="html">&lt;p&gt;DailyDogo 1167 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1167-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1167 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1166 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/04/dailydogo1166/" />
      <updated>2025-02-04T17:05:44Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/04/dailydogo1166/</id>
      <content type="html">&lt;p&gt;DailyDogo 1166 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1166-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1166 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1165 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/03/dailydogo1165/" />
      <updated>2025-02-03T20:03:41Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/03/dailydogo1165/</id>
      <content type="html">&lt;p&gt;DailyDogo 1165 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1165-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1165 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1164 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/02/dailydogo1164/" />
      <updated>2025-02-01T18:04:47Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/02/dailydogo1164/</id>
      <content type="html">&lt;p&gt;DailyDogo 1164 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1164-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1164 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1163 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/01/dailydogo1163/" />
      <updated>2025-02-01T18:04:47Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/01/dailydogo1163/</id>
      <content type="html">&lt;p&gt;DailyDogo 1163 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1163-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1163 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Use The Default - Visual Design Cheat Code



        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/" />
      <updated>2025-02-01T17:56:13Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-01-27 - Created this note&lt;/li&gt;
&lt;li&gt;2025-02-02 - The theme toggle is an adapted version of what is happening on &lt;a href=&quot;https://tinyprojects.dev&quot;&gt;this site&lt;/a&gt; (which &lt;em&gt;also&lt;/em&gt; doesn&#39;t have a styled theme toggle button!)&lt;/li&gt;
&lt;li&gt;2025-05-12 - I actually found a nice spot for the theme toggle button when I redesigned my header. Read more &lt;a href=&quot;https://blog.martin-haehnel.de/2025/03/23/mobile-nav/&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I&#39;m not a very visual person. I think you could tell by looking at the photos I take (e.g. my &lt;a href=&quot;https://blog.martin-haehnel.de/tags/dailydogo/&quot;&gt;DailyDogos&lt;/a&gt;) and how my stuff more generally tends to look - the design and colors and everything else. Which is to say: Pretty basic. But to me that is also a cheat code. This blog uses the basic theme from &lt;a href=&quot;https://github.com/11ty/eleventy-base-blog&quot;&gt;eleventy-base-blog&lt;/a&gt; (which is the starter template I used to create this blog initially). This basic theme is very readable, has a very simple construction and I like its compact layout. It comes with a dark and light mode. In short: It is a reasonable default choice for people like me that are more about structure and less about presentation.&lt;/p&gt;
&lt;p&gt;This is not to say that I wouldn&#39;t add features or change things here and there. I added, for example, a very simple theme toggle. Since I find light themes often visually overwhelming I spent my days around 100% in dark mode. But I may want to see how the site looks when viewed in light mode. Now I can. Is this a visual design thing? Not really. It is a feature of the blog for sure. The way I struggle to find a place for the button and how to style it - which is why it looks basic and unstyled right now - is a great example of why I tend to go with the default design of a thing.&lt;/p&gt;
&lt;p&gt;I&#39;m sure that I will figure out where to put the button and how to style it at some point. And I&#39;m also sure that if a place and style is found that is acceptable, that this &amp;quot;solution&amp;quot; to this particular design mini-problem will just be used over and over again.&lt;/p&gt;
&lt;p&gt;Another example is the main navigation next to my name: To not break the layout on mobile I&#39;m limited to these six items. I could maybe use a magnifying glass for the search page and a feed icon for the feed and fit another link there - and I might do that - but what I&#39;m not going to do is reinvent the navigation portion of my blog&#39;s layout.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing of the main navigation portion of this blog. There is an unstyled theme toggle button there and apart from my name also these navigation items: Home, Archive, About, Garden, Search, Feed.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2025-02-01-visual-blog-design-1.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;So this light-touch approach of mostly using the basic layout as-is and only playing within the margins of said layout otherwise ensures a somewhat ok looking blog without getting bogged down in the parts of web development I&#39;m not so good at (and more importantly: enjoy less).&lt;/p&gt;
&lt;p&gt;So yeah: I&#39;m more about features and structure and less about presentation. I hope that over time &amp;quot;small solutions&amp;quot; (like where to put the theme toggle button) will anyways lead to a unique looking site. But this is what it is right now. And that&#39;s ok.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Use The Default - Visual Design Cheat Code

        https://blog.martin-haehnel.de/blog/2025/02/01/visual-blog-design/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1162 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/31/dailydogo1162/" />
      <updated>2025-01-31T20:25:28Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/31/dailydogo1162/</id>
      <content type="html">&lt;p&gt;DailyDogo 1162 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1162-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1162 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1161 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/30/dailydogo1161/" />
      <updated>2025-01-30T20:11:15Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/30/dailydogo1161/</id>
      <content type="html">&lt;p&gt;DailyDogo 1161 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1161-thursday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1161 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1160 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/29/dailydogo1160/" />
      <updated>2025-01-29T18:21:10Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/29/dailydogo1160/</id>
      <content type="html">&lt;p&gt;DailyDogo 1160 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1160-wednesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1160 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1159 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/28/dailydogo1159/" />
      <updated>2025-01-28T19:20:56Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/28/dailydogo1159/</id>
      <content type="html">&lt;p&gt;DailyDogo 1159 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1159-tuesday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1159 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1158 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/27/dailydogo1158/" />
      <updated>2025-01-27T19:25:44Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/27/dailydogo1158/</id>
      <content type="html">&lt;p&gt;DailyDogo 1158 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1158-monday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1158 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;Setup&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/27/hub-setup/" />
      <updated>2025-01-27T17:28:07Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/27/hub-setup/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-01-27 - Created this note&lt;/li&gt;
&lt;li&gt;2025-02-11 - Added a &amp;quot;blog&amp;quot; section - with a couple of links - and a &amp;quot;reading&amp;quot; section - for the already existing content&lt;/li&gt;
&lt;li&gt;2025-07-21 - Added links to my posts about Eleventy&lt;/li&gt;
&lt;li&gt;2025-08-31 - Added a link to the post about this blog now being powered by a monorepo&lt;/li&gt;
&lt;li&gt;2025-09-01 - Added a link to the post about my recently updated features and added a Task-Management section and linked to the post hub for my &amp;quot;Lebenszyklus&amp;quot; system.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;A lot of my intrinsic interests circle around the term &amp;quot;Setup&amp;quot;: my notes setup, my productivity setup, my blog setup and so on. This &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Post Hubs&lt;/a&gt; is collecting and linking them all in one place.&lt;/p&gt;
&lt;h3 id=&quot;the-blog&quot;&gt;The Blog&lt;/h3&gt;
&lt;p&gt;This blog started as a blog on Micro.blog and some of its contents are therefore referring to a blog hosting service I no longer use.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;Migration from Micro.blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The new foundation is a Cloudflare Pages hosted Eleventy-based blog. I wrote about what I&#39;ve done to make this blog more &amp;quot;my own&amp;quot; over time:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/11/footnotes-in-eleventy/&quot;&gt;How To Add Footnotes To Eleventy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/04/21/eleventy-wikilinks/&quot;&gt;How To Make Eleventy Understand Obsidian-style Wiki Links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/02/15/eleventy-change-permalinks/&quot;&gt;How To Remove A Folder From The Generated Permalinks In Eleventy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/29/favs-in-eleventy/&quot;&gt;How To Implement Favs In Eleventy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/02/12/search-in-eleventy/&quot;&gt;How To Add Search To Eleventy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/05/11/obsidian-callouts-eleventy/&quot;&gt;How To Make Eleventy Understand Obsidian-style Callouts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/06/nice-permalinks-in-eleventy-and-nice-filenames-in-obsidian/&quot;&gt;Nice Permalinks In Eleventy AND Nice Filenames in Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/29/this-blog-is-now-a-monorepo/&quot;&gt;This Blog Is Now A Monorepo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/&quot;&gt;See What&amp;apos;s Changed Through New Recently Changed &amp;quot;Feature&amp;lpar;s&amp;rpar;&amp;quot;&lt;/a&gt; (a.k.a. the worst titled blog post of all time)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;task-management&quot;&gt;Task-Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/posthub-lebenszyklus/&quot;&gt;Posthub - Lebenszyklus&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;reading-consuming&quot;&gt;Reading/Consuming&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/13/my-current-highlighting.html&quot;&gt;My Current Highlighting And Annotation Setup&lt;/a&gt; - not exactly up-to date, but relevant here.&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;Setup&quot;

        https://blog.martin-haehnel.de/blog/2025/01/27/hub-setup/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Migration from Micro.blog



        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/" />
      <updated>2025-01-24T19:32:46Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-01-29 - Added a link to make clear that it&#39;s possible to follow this blog through mastodon.&lt;/li&gt;
&lt;li&gt;2025-01-30 - Linked the (now hidden from the navigation) Replies page, with a little explanation.&lt;/li&gt;
&lt;li&gt;2025-02-02 - Added a &amp;quot;Why?&amp;quot; section&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;I have migrated my blog and with it, changed the template. This is a work-in-progress, so you&#39;ll find unfinished things and broken things.&lt;/p&gt;
&lt;p&gt;If you do find a problem, please tell me!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&#39;m on &lt;a href=&quot;https://social.lol/@matti&quot;&gt;mastodon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;I&#39;m on &lt;a href=&quot;https://bsky.app/profile/finn-matti.bsky.social&quot;&gt;bluesky&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;You can also write me &lt;a href=&quot;mailto:matti@omg.lol&quot;&gt;an email&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I plan to make the blog available to the mb timeline natively at some point again, until then you can follow my posts through mastodon with micro.blog. Check out &lt;a href=&quot;https://help.micro.blog/t/mastodon-and-activitypub/95&quot;&gt;this post&lt;/a&gt; in their help forums (&amp;quot;How can I find Mastodon users to follow on Micro.blog?&amp;quot;).&lt;/p&gt;
&lt;h3 id=&quot;why&quot;&gt;Why?&lt;/h3&gt;
&lt;p&gt;I wrote about it - albeit somewhat cryptically - &lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/24/cant-get-into-it-but.html&quot;&gt;here&lt;/a&gt;. In short: I don&#39;t believe I want to be associated with my old blog hoster anymore, because of the many bad takes and non-takes the person (and people) behind micro.blog have made in the past months. In my personal opinion owning up is important. Especially now (I might be &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe&quot;&gt;in Europe&lt;/a&gt;, but that doesn&#39;t mean I don&#39;t care). Especially online. Especially if you are the proprietor of a social media platform - even if that platform is somewhat small. You speak for more people than only yourself, so you better speak up. But if you then finally say something, you don&#39;t tone police others or declare that something was enough, when it absolutely fucking wasn&#39;t.&lt;/p&gt;
&lt;p&gt;Here are some posts by others that might shed light on what exactly happened:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://cygnoir.net/2025/01/you-dont-get-to-decide&quot;&gt;cygnoir.net: You don&#39;t get to decide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://anniemueller.com/posts/fuckity-fuck-fuck&quot;&gt;annie&#39;s blog: Fuckity fuck fuck&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://craney.uk/posts/leaving-microblog-heart-view&quot;&gt;It’s Craney…: Leaving micro.blog - Heart View ♥️&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://coyotetracks.org/blog/pressure-to-stay-genteel/&quot;&gt;Coyote Tracks: The pressure to stay genteel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The weird thing is that I was using Micro.blog mostly as a way to publish my writing and some of my photos online. I was never a big community guy. The sporadic engagement I got was nice, but not the main point of paying a blog hoster. It was just an easy way to pay someone else to figure out the details. But. I do not want to be associated with people who either openly adore people I despise, or are super-cavalier about issues that I care about and/or that others care about that I respect. Because this reflects back badly at me AND indirectly sends a message to the world that I condone this behavior. I don&#39;t. Additionally, I hate when people abuse nuance and calm in order to hide behind it. I love me some calm and love having and receiving nuanced takes - it can make things appear in a fresh new light. But it shouldn&#39;t be used as a shield. But that is exactly how the people who were maintaining the platform have used these things.&lt;/p&gt;
&lt;p&gt;So I stopped using the Micro.blog platform and moved my blog during a somewhat sleepless weekend in January of 2025. A post about my new blog setup is forthcoming.&lt;/p&gt;
&lt;h3 id=&quot;where-is-the-micro-blog-replies-page&quot;&gt;Where is the Micro.blog Replies Page?&lt;/h3&gt;
&lt;p&gt;All micro.blog hosted blogs come with a replies page that includes all the &amp;quot;replies&amp;quot; you made to other people on the micro.blog timeline (&lt;a href=&quot;https://help.micro.blog/t/hosted-replies/66&quot;&gt;more info&lt;/a&gt;). This page still exists &lt;a href=&quot;https://blog.martin-haehnel.de/replies/&quot;&gt;here&lt;/a&gt;, but it is not implemented, yet. My goal is to at least keep my old mb replies around, but It&#39;d be great to use this page for any and all replies made by me to other people on other socials. I&#39;ll have to see if I can figure out how to that. For now it&#39;s just an empty page though. One step at a time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Migration from Micro.blog

        https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1157 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/26/dailydogo1157/" />
      <updated>2025-01-24T19:32:46Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/26/dailydogo1157/</id>
      <content type="html">&lt;p&gt;DailyDogo 1157 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1157-sunday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1157 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1156 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/25/dailydogo1156/" />
      <updated>2025-01-24T19:32:46Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/25/dailydogo1156/</id>
      <content type="html">&lt;p&gt;DailyDogo 1156 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1156-saturday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1156 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1155 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/blog/2025/01/24/dailydogo1155/" />
      <updated>2025-01-24T19:32:46Z</updated>
      <id>https://blog.martin-haehnel.de/blog/2025/01/24/dailydogo1155/</id>
      <content type="html">&lt;p&gt;DailyDogo 1155 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/dd1155-friday.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1155 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Can&#39;t get into it,...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/24/cant-get-into-it-but.html" />
      <updated>2025-01-24T12:14:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/24/cant-get-into-it-but.html</id>
      <content type="html">&lt;p&gt;Can&#39;t get into it, but it&#39;s &lt;a href=&quot;https://notes.neatnik.net/2025/01/not-enough&quot;&gt;not enough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The AI stuff. The lgbtq+ stuff.&lt;/p&gt;
&lt;p&gt;The AI stuff that was mostly about believing a woman and the not recognizing the smoke (for me).&lt;/p&gt;
&lt;p&gt;Me trying to stay nuanced while people using &amp;quot;nuance&amp;quot; to hide their beliefs.&lt;/p&gt;
&lt;p&gt;The lgbtq stuff that was mostly about not stating, clearly, your values and the actions you&#39;d and -&#39;ll take.&lt;/p&gt;
&lt;p&gt;Sometimes things are outrageous.&lt;/p&gt;
&lt;p&gt;Calm is not the same as right.&lt;/p&gt;
&lt;p&gt;Being wrong a little about the topic and then being wrong a lot about other people&#39;s reasons.&lt;/p&gt;
&lt;p&gt;And their feelings.&lt;/p&gt;
&lt;p&gt;It all sucks.&lt;/p&gt;
&lt;p&gt;You think 8 years is long? Try a lifetime.&lt;/p&gt;
&lt;p&gt;Try saying &amp;quot;My values are&amp;quot; and &amp;quot;I support&amp;quot;.&lt;/p&gt;
&lt;p&gt;Then we&#39;ll talk. Or would have.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Can&#39;t get into it, but it&#39;s not enough. The AI stuff. The lgbtq+ stuff. The AI stuff that was mostly about believing a woman and the not recognizing the smoke (for me). Me trying to stay nuanced while people using &amp;quot;nuance&amp;quot; to hide their beliefs. The lgbtq stuff that was mostly about not stating, clearly, your values and the actions you&#39;d and -&#39;ll take. Sometimes things are outrageous. Calm is not the same as right. Being wrong a little about the topic and then being wrong a lot about other people&#39;s reasons. And their feelings. It all sucks. You think 8 years is long? Try a lifetime. Try saying &amp;quot;My values are&amp;quot; and &amp;quot;I support&amp;quot;. Then we&#39;ll talk. Or would have.

        https://blog.martin-haehnel.de/2025/01/24/cant-get-into-it-but.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1154 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/23/dailydogo.html" />
      <updated>2025-01-23T19:36:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1154 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/81a954c6f3c34bac96070739e51b4cae.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1154 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1153 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/21/dailydogo.html" />
      <updated>2025-01-21T19:40:27Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1153 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/35d244389ec546178edc5dbaf51d74a3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1153 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1152 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/20/dailydogo.html" />
      <updated>2025-01-20T20:41:12Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1152 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/26fe9d03c0b84e25842dfc26d1b06a1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1152 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1151 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/19/dailydogo.html" />
      <updated>2025-01-19T19:37:10Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1151 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/fd6adb3d1bcb45808a27fef854266871.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1151 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1150 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/18/dailydogo.html" />
      <updated>2025-01-18T20:15:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1150 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f9bd502eb2744ddeae3352b5b57b06a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1150 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1149 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/17/dailydogo.html" />
      <updated>2025-01-17T20:50:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1149 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/0a92f6b9337e47b0910b97d61cc8f95d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1149 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1148 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/16/dailydogo.html" />
      <updated>2025-01-16T19:44:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1148 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/501bb88942eb423a89002720f61cf62d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1148 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1147 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/15/dailydogo.html" />
      <updated>2025-01-15T18:24:33Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1147 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/5c6b0c39f6444ce08ac6e58a1c429002.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1147 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1146 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/14/dailydogo.html" />
      <updated>2025-01-14T20:11:24Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1146 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/d921afc5bdac4a6db1e949130bf88005.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1146 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1145 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/13/dailydogo.html" />
      <updated>2025-01-13T20:18:18Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1145 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A cute doggie lying next to a couch. Looking both lazy and on guard at the same time.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/f8930f34cd584db1b8d62cfbb9816598.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1145 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1144 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/12/dailydogo.html" />
      <updated>2025-01-12T19:01:32Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1144 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31ff342bbe8b4e7891eb5319ec532831.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1144 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1143 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/11/dailydogo.html" />
      <updated>2025-01-11T21:21:56Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1143 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/53ddb97bbd2344edb1f5cf9a785c6d48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1143 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1142 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/10/220011.html" />
      <updated>2025-01-10T20:00:11Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/10/220011.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1142 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/ccde15a558c849099b828449394967e4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1142 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1141 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/10/dailydogo.html" />
      <updated>2025-01-10T06:14:08Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1141 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/9c56816cae2f4fb98a3cf73ae53fe21f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1141 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1140 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/08/dailydogo.html" />
      <updated>2025-01-08T19:31:53Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1140 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/a586131c07c84b63bbfce286cc0a4450.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1140 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1139 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/07/dailydogo.html" />
      <updated>2025-01-07T20:01:30Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1139 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/e12ec7b1f15543a6ac418c509ebb174a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1139 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1138 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/06/dailydogo.html" />
      <updated>2025-01-06T19:02:47Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1138 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/8b18c0c7d8.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1138 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1137 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/05/215657.html" />
      <updated>2025-01-05T19:56:57Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/05/215657.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1137 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/4bc1d83332324d299afe72549bbd9565.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1137 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1136 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/05/dailydogo.html" />
      <updated>2025-01-04T22:27:46Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1136 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/2d5b041b6d6d4394a2f0d8e63fed9d60.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1136 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1135 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/04/dailydogo.html" />
      <updated>2025-01-03T22:06:03Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1135 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/6a846657609b47d7b81ee3ec405083d3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1135 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1134 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/02/dailydogo.html" />
      <updated>2025-01-02T19:30:50Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1134 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A dog lying on the floor next to a couch. In front of it is a dog toy.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/31467bebff764181ba899f79e5a6aedf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1134 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1133 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/01/dailydogo.html" />
      <updated>2025-01-01T21:02:02Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1133 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/95f685478c08439f9cfac27c42ea3e32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1133 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          2024 - Recap



        
      </title>
      <link href="https://blog.martin-haehnel.de/2025/01/01/recap.html" />
      <updated>2025-01-01T18:59:09Z</updated>
      <id>https://blog.martin-haehnel.de/2025/01/01/recap.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-01-02 - Fixed a link and fixed a sentence in the Notes &amp;amp; Setup section&lt;/li&gt;
&lt;li&gt;2026-01-01 - Fixed a broken image link&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;&lt;em&gt;(I tried to do the year in review post a little differently this year, by using categories instead of the year and its month as its organizing principle. So it reads a little different in comparison to the years before, but I like this new format! Feels somehow more sustainable. Well, we&#39;ll see how I think about this next year...)&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;health-and-fitness&quot;&gt;Health And Fitness&lt;/h3&gt;
&lt;p&gt;I feel like I said everything I wanted to say about sleep in my recap blog post about this: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html&quot;&gt;Yearly Theme 2024 Recap - Year Of Sleep&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I tried to run a little (using &lt;a href=&quot;https://www.watchto5k.com&quot;&gt;Watch To 5k&lt;/a&gt;, which I liked, but I somehow lost momentum in Week 3 of 9), but apart from walking the dog and doing the occasional day hike, I didn&#39;t to anything this year.&lt;/p&gt;
&lt;p&gt;Mentally, I&#39;m doing okay, but I have noticed that I am more nervous, sometimes anxious - maybe that&#39;s not a change that is specific to this year, but I have noticed it more this year. I am unsure what to make of it. I want to think that it is at least in part a positive thing, because I acknowledge those feelings more, but of course, being anxious is stressful. Anxiety triggers included: Money and job security, travel and expectations from others. The move from Kuusamo to Oulu - which I have not written about, it seems - was stressful. And in general this year had at times lots of overwhelm in store for me, where I had the feeling that my brain stopped working. I think this is burnout rearing its ugly head - I &lt;em&gt;think&lt;/em&gt; this may have had to do with my problems at work, but I feel like I got this back under control.&lt;/p&gt;
&lt;h3 id=&quot;finances&quot;&gt;Finances&lt;/h3&gt;
&lt;p&gt;I got back into budgeting this year. I wrote about it a little in &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#actual-in-ynab-out&quot;&gt;Shift to Europe&lt;/a&gt;. So basically: I restarted with YNAB after a year or so of slacking off and switched to Actual in the third quarter and have been pretty happy with it.&lt;/p&gt;
&lt;h3 id=&quot;the-blog-and-other-projects&quot;&gt;The Blog And Other Projects&lt;/h3&gt;
&lt;p&gt;Let&#39;s start with the side projects: I wrote a little manifesto about it: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html&quot;&gt;Limiting Projects To Not Be Limited By Them&lt;/a&gt;. Basically I came to the conclusion that apart from this blog I can&#39;t really afford any side projects, as I simply do not have the time or energy.&lt;/p&gt;
&lt;p&gt;I have softened that stance a little and have allowed one (1) side project to exist while having a blog: 2024 has seen the death of three (or so) different side projects that were never announced. So in a sense, I do have an open slot here.&lt;/p&gt;
&lt;p&gt;Also, I would in theory like to move my blog. The reasons are not so interesting. Mostly, I would like a little more control and would prefer a better (source code) editing experience. Also, I do not like Hugo as a static site generator. (And to a much lesser extent I am not 100% happy with my blog hoster w/r/t to their cavalier attitude towards AI - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html&quot;&gt;although I have walked a lot of my initial anger back quite a bit&lt;/a&gt;.)&lt;/p&gt;
&lt;p&gt;I have made one stab so far to try to get an archive of my blog working with &lt;a href=&quot;https://www.11ty.dev&quot;&gt;11ty&lt;/a&gt; and was relatively successful in a relatively short amount of time (4-6 hours or so?). The css was a little wrong and I am not sure that the URLs would be preserved, but we&#39;ll see what I can do about this migration project in 2025.&lt;/p&gt;
&lt;p&gt;I did write more this year than in the years before, the &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html&quot;&gt;WeblogPoMo&lt;/a&gt; and &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/02/daystooffload-overview.html&quot;&gt;100DaysToOffload&lt;/a&gt; surely helped, even though I abandoned the latter at some point.&lt;/p&gt;
&lt;h3 id=&quot;work&quot;&gt;Work&lt;/h3&gt;
&lt;p&gt;Work was a mixed bag of anxiety and actually feeling pretty good about myself. Thankfully the &amp;quot;feeling good about myself&amp;quot; happened in the last third of this year, while I was very unsure about my whole situation in the middle of the year. The post hub &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html&quot;&gt;Efficient Programming&lt;/a&gt; and the post &lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html&quot;&gt;Reflexions After Two Weeks Of Having Accepted My Ineffectiveness&lt;/a&gt; reveals in the way I named them how shaken I was at that time.&lt;/p&gt;
&lt;p&gt;But, with a little perspective, I can say that:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sure, I can and should look for ways to be more effective and I am a person who takes his time in general, so it&#39;s good to keep that in mind.&lt;/li&gt;
&lt;li&gt;I am not a moron, though. Sometimes things take time because they take time. Or because taking time is beneficial and sometimes it&#39;s worth it to take more time and face the music for having done so, because it&#39;s worth it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So, I think I am in a much better space now, again, and am looking forward to what I&#39;ll do next in my job.&lt;/p&gt;
&lt;h3 id=&quot;media&quot;&gt;Media&lt;/h3&gt;
&lt;p&gt;I tend to consume less media - especially movies and series - than others, because I like to watch Youtube and/or play video games or do some other stuff on my computer. However, I did watch some movies that I like - like both parts of Dune, Fly Me To The Moon and some others. I also watched some Series like Mare Of Easttown and most recently Apple TV+&#39;s Silo. 911 and its Texas-spinoff Lonestar are long term favorites of ours also.&lt;/p&gt;
&lt;p&gt;I read (mostly through Kindle) and heard (mostly through Audible) some books, too. I liked Building A Second Brain, Slow Productivity - although I knew most of their contents already, it was nice to refresh these ideas -, Katherine May&#39;s Enchantment and Wintering - I did like Enchantment a lot more -, You Could Make This Place Beautiful by Maggie Smith, A Death In The Family bei Knåusgård and some work related stuff like Fundamentals Of Software Architecture. All of these had some value to them. I read/listened to more stuff, but not that much more. As always, I would&#39;ve liked to consume more books.&lt;/p&gt;
&lt;p&gt;I did spend many hours watching Youtube this year. Mostly &lt;a href=&quot;https://www.youtube.com/@Baalorlord&quot;&gt;Baarlorlord&lt;/a&gt; (Slay The Spire Twitch Streamer) and &lt;a href=&quot;https://www.youtube.com/@CrackingTheCryptic&quot;&gt;Cracking The Cryptic&lt;/a&gt; (Sudoku-Channel). Everything else was watched &lt;em&gt;way&lt;/em&gt; less. &lt;a href=&quot;https://www.youtube.com/@Jorbs&quot;&gt;Jorbs&lt;/a&gt; (Twitch Streamer), &lt;a href=&quot;https://www.youtube.com/@aragusea&quot;&gt;Adam Ragusea&lt;/a&gt; (Food), &lt;a href=&quot;https://www.youtube.com/@TechnologyConnections&quot;&gt;Technology Connections&lt;/a&gt; (How does a freeze dryer work? How about a coffee maker?), &lt;a href=&quot;https://www.youtube.com/@mkbhd&quot;&gt;MKBHD&lt;/a&gt; (tech), &lt;a href=&quot;https://www.youtube.com/@ABetterComputer&quot;&gt;A Better Computer&lt;/a&gt; (apple tech) and some others. Most recently I have discovered &lt;a href=&quot;https://www.youtube.com/@aliabdaal&quot;&gt;Ali Abdaal&lt;/a&gt; (Productivity).&lt;/p&gt;
&lt;p&gt;I played some games but finished few. My epic Baldur&#39;s Gate III play-through - 200 hours and counting - is still ongoing. My all time faves like Stellaris, Dead Cells and Slay The Spire (&lt;a href=&quot;https://www.youtube.com/watch?v=ttVtllHkb4E&quot;&gt;STS2&lt;/a&gt; was announced and I&#39;m soooo looking forward to it) saw many hours of play. I did finish The &lt;a href=&quot;https://www.thegoldenidol.com&quot;&gt;Case Of The Golden Idol&lt;/a&gt;, though, which was awesome. After BG III I&#39;ll probably check out its successor: &lt;a href=&quot;https://www.riseofthegoldenidol.com//&quot;&gt;Rise Of The Golden Idol&lt;/a&gt;.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of my most recently played games, according to steam. Recent - Baldur&amp;amp;#39;s Gate 3, Stellaris, Dead Cells, Slay the Spire. November 2024 - Brotato, The Case of the Golden Idol. October 2024 - Factorio Shogun Showdown. August 2024 - Dome Keeper. June 2024 - Animal Well. May 2024 - Hades, Slice &amp;amp;amp; Dice. March 2024 - Balatro. February 2024 - Baba Is You.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2025/cleanshot-2025-01-01-at-16.26.082x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;h3 id=&quot;llms-and-ai&quot;&gt;LLMs and AI&lt;/h3&gt;
&lt;p&gt;My thinking has evolved around this topic, but it has not fundamentally changed, even though I tried hard to absorb even more AI criticism (like things from Emily M. Bender) - which is the standpoint that I feel intuitively is mostly correct. I have not changed my stance though that there are acceptable use cases. Which doesn&#39;t mean I don&#39;t care about the implications of using LLMs. Which in turn doesn&#39;t mean either, that it is taboo to use them. Many of us still drive a gas powered car (hopefully a small gas saving model), because having no car or even an electric one is often, depending on your specific context, untenable (it is in mine). I think we should think about LLMs similarly: We should use them when it makes a clear user verifiable case for itself. For example, LLMs are good Boilerplate+™ code generators: As it&#39;s easy enough to figure out - for me, since I am a developer - if, what the model generates, actually does what it should (and does it in a way it should, and does it in a way that does gel with the rest of the code, and doesn&#39;t introduce security problems, ...). I recently found the LLMs are okay at giving food ideas and replacements for foods, which is a new use case for them for me that I feel like I can verify pretty quickly and gauge correctly.&lt;/p&gt;
&lt;p&gt;Anyways, my most complete take on the topic is this: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;The Way We Use LLMs Makes All The Difference&lt;/a&gt;, which I still stand by.&lt;/p&gt;
&lt;h3 id=&quot;real-world-things&quot;&gt;Real World Things&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;I was in Berlin in January to meet my Mom and go to a couple of Handball games for the Men&#39;s European Handball Championship, which was awesome.&lt;/li&gt;
&lt;li&gt;We moved to Oulu from Kuusamo, after my partner lost her job (thanks right-wing government, I vow when and if I am allowed to vote in this country to never ever vote for you). Although there was a lot of despair, we made it through to the other side. The move was pretty stressful and exhausting, but it was right to do. I do love Oulu. But I will always miss Kussamo&#39;s nature and safety, my first &amp;quot;home&amp;quot; before moving to Finland will always have a special place in my heart.&lt;/li&gt;
&lt;li&gt;Our summer vacation was spent road tripping around and seeing some of the nature of Lake Finland. Especially our stay on the &lt;a href=&quot;https://classic.nationalparks.fi/linnansaarinp&quot;&gt;Linnansaari&lt;/a&gt; island was amazing. I wrote about our low-tech situation and how much I enjoyed it: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html&quot;&gt;I thrive in a low-tech environment&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;My dad visited in September and stayed with us for 5 days. All of us in the same apartment. I was slightly nervous about it, because the dog is not used to having visitors, but also Napu has grown up a lot over the last year and it went amazingly.&lt;/li&gt;
&lt;li&gt;I am still surprised that I missed Bruno Latour&#39;s death in 2022. I wrote about it here: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html&quot;&gt;Latour&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There were other things, but these are the things I&#39;d like to or at least want to remember.&lt;/p&gt;
&lt;h3 id=&quot;notes-and-setup&quot;&gt;Notes &amp;amp; Setup&lt;/h3&gt;
&lt;p&gt;I had a PARA-System setup even before I read the Building A Second Brain book, but reading it shifted something and gradually my notes seem to fit - it&#39;s ongoing - a more compartmentalized approach more. So I have followed my feeling here and a big part of my recent note taking took part in the &amp;quot;resources&amp;quot; section of my PARA (sub)system.&lt;/p&gt;
&lt;p&gt;I also payed for a - kinda medium quality, tbh - online course for the &lt;a href=&quot;https://carl-pullein.thinkific.com/courses/the-time-sector-course&quot;&gt;time sector system&lt;/a&gt;: The idea here is to organize tasks not by project but by the time you intend to do them: This week, next week, this month, next month or long-term. Any and all project management is done in your notes system. This simplifies the decision making process a lot: You only need to answer &lt;em&gt;when&lt;/em&gt;, which is why this system is also called a &amp;quot;when-based, not project-based system&amp;quot;.&lt;/p&gt;
&lt;p&gt;I found the idea very compelling, but in practice somewhat hard to stick to. But this was a problem that plagued me the whole year, really: To many damn changes without many results w/r/t my task management system. I went from &lt;a href=&quot;https://www.omnigroup.com/omnifocus&quot;&gt;OmniFocus 4&lt;/a&gt; to &lt;a href=&quot;https://culturedcode.com/things/&quot;&gt;Things&lt;/a&gt;, from Things to &lt;a href=&quot;https://www.ticktick.com&quot;&gt;TickTick&lt;/a&gt;, from TickTick to Things. And if I remember correctly, I tried &lt;a href=&quot;https://www.2doapp.com&quot;&gt;2Do&lt;/a&gt;, &lt;a href=&quot;https://todoist.com&quot;&gt;Todoist&lt;/a&gt;, &lt;a href=&quot;https://teuxdeux.com&quot;&gt;TeuxDeux&lt;/a&gt; and some others as well. I am back with Things now, but I feel that I am not yet done with my task management app and methodology dance: An important aspect of 2025 will be to find a sustainable way to integrate task and note management for real. &lt;a href=&quot;https://www.dueapp.com&quot;&gt;Due&lt;/a&gt; has been my rock for anything that had to get done, regardless of the current state of my task management system.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://obsidian.md/clipper&quot;&gt;Obsidian Webclipper&lt;/a&gt; was a great addition. I had initially no use case for it, since it is not a good replacement (yet) for a read-it-later service like &lt;a href=&quot;https://readwise.io&quot;&gt;Readwise&lt;/a&gt;. But it&#39;s great to generate notes from a single (or a handful of highlights). Oh yeah: Omnivore died some short months after I migrated from Readwise Reader. But: &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/31/i-wont-lie.html&quot;&gt;Readwise Reader is a pretty sweet tool&lt;/a&gt;, so I&#39;m not that mad about it. And apropos Obsidian: This tool continues to delight me and is my &amp;quot;notes IDE&amp;quot; and is one of the most important tools in my arsenal.&lt;/p&gt;
&lt;p&gt;I started journaling again by using &lt;a href=&quot;https://dayoneapp.com&quot;&gt;DayOne&lt;/a&gt;. I think I&#39;ll migrate this practice - any maybe the posts? - over to Obsidian though.&lt;/p&gt;
&lt;p&gt;Somehow &lt;a href=&quot;https://aethermug.com/posts/you-don-t-have-time&quot;&gt;this article about good books&lt;/a&gt; and how to approach reading and &lt;a href=&quot;https://one-sec.app&quot;&gt;this app&lt;/a&gt; that delays braindead social media scrolling and similar things - both found at the end of the year - really helped using my time to do more higher value things like reading and listening to audio books.&lt;/p&gt;
&lt;p&gt;And shortly after the US-election I wrote an article about my &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html&quot;&gt;Shift To Europe&lt;/a&gt;, in which I tried to lay out why I think it is important and correct as a European to prefer European software (and hardware). As an individual I think it is important and correct to prefer solutions that respect users, their privacy and their values. This may include non-European hard- and software. In practice this is still kind of wishy-washy, but it still helped to clarify my own thinking with regards to this topic and future technology choices.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/01/04/this-year-had.html&quot;&gt;Previously&amp;period;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        2024 - Recap

        https://blog.martin-haehnel.de/2025/01/01/recap.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1132 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/31/dailydogo.html" />
      <updated>2024-12-31T21:41:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1132 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9fa44b3693c64f7da1579204cfcd20cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1132 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          If you happen to use...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/31/if-you-happen-to-use.html" />
      <updated>2024-12-31T08:05:15Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/31/if-you-happen-to-use.html</id>
      <content type="html">&lt;p&gt;If you happen to use Youtube Music: At least for me user generated playlists are at times &lt;em&gt;much&lt;/em&gt; better than whatever the algorithm™ generates. I didn&#39;t give them a try for the longest time, but I&#39;m really liking what I hear and discover through these lists.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        If you happen to use Youtube Music: At least for me user generated playlists are at times much better than whatever the algorithm™ generates. I didn&#39;t give them a try for the longest time, but I&#39;m really liking what I hear and discover through these lists.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1131 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/30/222357.html" />
      <updated>2024-12-30T20:23:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/30/222357.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1131 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/710d37bf955b4c62bf9563c5fd70f460.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1131 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1130 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/30/dailydogo.html" />
      <updated>2024-12-30T06:45:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1130 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff6fc91795594aadaa9524df30d790e3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1130 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1129 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/28/dailydogo.html" />
      <updated>2024-12-28T21:13:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1129 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4dbc8ec93b8b4e9eab79258c23fbf2cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1129 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1128 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/27/dailydogo.html" />
      <updated>2024-12-27T19:44:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1128 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a9d9ac0925bb4fa4b5a8f9c107ef55a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1128 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1127 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/26/dailydogo.html" />
      <updated>2024-12-26T18:11:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1127 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f2aa717a042430196d7851d82393bfc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1127 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1126 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/25/dailydogo.html" />
      <updated>2024-12-25T18:58:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1126 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d8ffc757a274c918febd6dc8b8ab5b0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1126 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1125 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/24/dailydogo.html" />
      <updated>2024-12-24T20:48:52Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1125 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/82338454a6a74ea28e265c1c191fda7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1125 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1124 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/23/dailydogo.html" />
      <updated>2024-12-23T21:04:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1124 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e9d192f096c4ced9a0e39462a5ce338.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1124 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1123 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/22/dailydogo.html" />
      <updated>2024-12-22T21:08:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1123 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c85d7a9ae844a28b99522610eef04a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1123 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1122 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/21/dailydogo.html" />
      <updated>2024-12-21T19:09:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1122 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22f68dedd82d43c1952ea3119f141d4e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1122 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1121 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/20/dailydogo.html" />
      <updated>2024-12-20T21:35:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1121 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/59b810eb91ce40a1ba00b6d0254584cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1121 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1120 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/19/dailydogo.html" />
      <updated>2024-12-19T19:02:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1120 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5256aa4223aa44c8a3d5c69752077ddb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1120 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1119 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/18/dailydogo.html" />
      <updated>2024-12-18T19:20:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1119 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d89faad9427416089490b9f06c4b81a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1119 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1118 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/17/dailydogo.html" />
      <updated>2024-12-17T21:26:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1118 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/abdb89dacf794248b44893c4c5aaa5dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1118 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          About The Impossibility Of Steph Ango&#39;s &quot;self-guaranteeing promises&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/17/about-the-impossibility.html" />
      <updated>2024-12-17T12:34:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/17/about-the-impossibility.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-12-27
&lt;ul&gt;
&lt;li&gt;Added links to quoted mastodon posts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-12-17
&lt;ul&gt;
&lt;li&gt;Title case for post title&lt;/li&gt;
&lt;li&gt;Fixed a typo in the changelog...&lt;/li&gt;
&lt;li&gt;Added another post script about another perspective on guarantee: One that looks at a product before its acquisition by the user.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;blog-post&quot;&gt;Blog Post&lt;/h2&gt;
&lt;p&gt;The CEO of &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; recently wrote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Companies break promises all the time. A self-guaranteeing promise does not require you to trust anyone. You can verify a self-guaranteeing promise yourself.&lt;/p&gt;
&lt;p&gt;File over app is a self-guaranteeing promise.
— &lt;a href=&quot;https://stephango.com/self-guarantee&quot;&gt;Steph Ango: Self-guaranteeing promises&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I asked him on Mastodon about this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://micro.blog/kepano&quot;&gt;@kepano&lt;/a&gt; What are other self-guaranteeing promises besides File over app? What makes &amp;quot;File over app&amp;quot; different than, say, relicensing? Couldn&#39;t a &amp;quot;File over app&amp;quot; company just pivot to use another storage format in the same way they could relicense their code going forward?
— &lt;a href=&quot;https://social.lol/@matti/113589939317209395&quot;&gt;Me&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He answered:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://micro.blog/matti&quot;&gt;@matti&lt;/a&gt; Sure the company could pivot, but what makes the promise self-guaranteeing is that you have control over the files so you can switch apps at any time.&lt;/p&gt;
&lt;p&gt;I will be adding an appendix with a list of self-guaranteeing promises people send in. One example someone shared was Volvo putting the patent of the three-point safety belt into the public domain.&lt;/p&gt;
&lt;p&gt;Lots of examples are straightforward e.g. &amp;quot;stainless steel&amp;quot; is self-guaranteeing because you can see/test the material yourself.
— &lt;a href=&quot;https://social.lol/@kepano@mastodon.social/113590149197890968&quot;&gt;@kepano/Steph Ango&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I was still confused, so I asked a follow up question:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://micro.blog/kepano&quot;&gt;@kepano&lt;/a&gt; So the promise is not a company’s promise, because otherwise the open source relicensing example would work, too: You can for example keep using elastic/redis/sourcegraph/whathaveyou before they relicensed as well and continue using the product as it is up to that point. Same with stainless steel. If the company changes what their knives are made of, the knives they produced up to that point will still be stainless steel.&lt;/p&gt;
&lt;p&gt;Not trying to be difficult, but to understand! 😅
— &lt;a href=&quot;https://social.lol/@matti/113593528159962723&quot;&gt;Me&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sadly, he didn&#39;t answer to my question, but he did update has post. However, I am still not really satisfied. So I tried to read the post a little closer, to figure out where the problem lies:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Stainless steel” is a self-guaranteeing promise. You can test it yourself on any tool that makes this promise, and the stainlessness of the steel cannot be withdrawn.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even though we start the blog post with &amp;quot;companies&amp;quot;, self-guaranteeing promises can only be made &amp;quot;by&amp;quot; or about products of a certain version. A knife may or may not be stainless steel. That can be tested. And a company may have &lt;em&gt;so far&lt;/em&gt; produced stainless steel knives but nothing about this promise actually &lt;em&gt;guarantees&lt;/em&gt; that the company will also produce stainless steel knives in the future.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Terms and policies are not self-guaranteeing. A company may promise the privacy of your data, but those policies can change at any time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is true for stainless steel knives also. A knife bought last year was stainless steel, but their new batch is not anymore. Terms and policies are easier to change and changes to them can be much less noticeable, but there is no categorical impossibility that the  &amp;quot;same&amp;quot; knives couldn&#39;t be non-stainless steel if I purchase a new set tomorrow.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A self-guaranteeing promise about privacy gives you proof that the tool cannot access your data in the first place.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Again, this can only be said about a software product, pertaining to a particular version range that may or may not include future versions as well. If it includes future version only time can tell. You can verify that the software product &lt;em&gt;so far&lt;/em&gt; has been respecting your privacy by not accessing your data, but that does not actually say anything about future versions of an app.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Open source alone is not self-guaranteeing. Even open source apps can rely on data that is stuck in databases or in proprietary formats that are difficult to switch away from.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is maybe the first time in this post that we see mention of difficulty to change, which is, I suspect, what this is - or in any case should be - about: Some promises are harder to take back than others. Making knives all of a sudden out of non-stainless (stainful?) steel will be very hard, whereas changing the terms of use is relatively easy. If you safe data in plaintext files instead of a proprietary data structure makes it harder to move away from the former, because a change like this will be super obvious and will incur at this point - if we talk about a mature product like Obsidian - an enormous development cost.&lt;/p&gt;
&lt;p&gt;HOWEVER: Cost of change for a company is no guarantee that this company is not altering its behavior in the future. It makes it more probable, but an alternative future is still possible. What we can say without running into these problems is that this knife is made of stainless steel or that Obsidian Version v1.7.7 is using a &amp;quot;file over app&amp;quot; philosophy to save data. I can use this version for as long as it will run and can rest assured it will save my notes as plaintext files. Will Obsidian v23.42.0 still be &amp;quot;file over app&amp;quot;? Probably, but it is not guaranteed.&lt;/p&gt;
&lt;p&gt;P.S.: Just to make clear that I understand that one interpretation of the &amp;quot;guarantee&amp;quot; term here could be that as soon as Obsidian is not doing file over app anymore, they broke their promise and therefore the guarantee is void. But then there is no useful distinction between any promise and self-guaranteeing ones. If instead the point was therefore that I as the user can easily verify that the promise is still upheld by checking if Obsidian is actually saving my data as plaintext files, then &amp;quot;user-verifiable promise&amp;quot; would have been a &lt;em&gt;much&lt;/em&gt; better term. Because my verification does not make it self-guaranteeing at all. My ability to do so does not interact with the promise part in a way that extends the validity of it into the future.&lt;/p&gt;
&lt;p&gt;P.P.S.: In order to have a real guarantee, you need a third party - society - that has power over the company and disallows certain behaviors. For the scope of the user and the company we can now speak of a guarantee. However even this guarantee is only &amp;quot;load-bearing&amp;quot; for as long as society doesn&#39;t change its rules - which is highly unlikely, but again, not impossible. It seems the concept of &amp;quot;guarantee&amp;quot; is problematic, eh?&lt;/p&gt;
&lt;p&gt;EDIT: P.P.P.S: I just realized that there could be another interpretation. It could be meant as a promise that is said before acquisition and easily verified after. But even then &amp;quot;user-verifiable promise&amp;quot; would haven the better term, as said in the first post script: &amp;quot;If you buy this, you&#39;ll get a knife that is made of stainless steel&amp;quot; is a promise that can be falsified pretty quickly, sure. But it is not telling us anything about the future after acquisition happened - meaning here for future knife sets/future versions of a software. We&#39;re still stuck with only being able to verify this knife, or this version of this app. For the knife that is maybe not so important, because knife updates aren&#39;t a thing as much as software updates are, but for apps we are interested in long-term reliability throughout future versions of the app and not only in the short time in between before acquisition and thereafter.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        About The Impossibility Of Steph Ango&#39;s &quot;self-guaranteeing promises&quot;

        https://blog.martin-haehnel.de/2024/12/17/about-the-impossibility.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1117 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/16/dailydogo.html" />
      <updated>2024-12-16T20:22:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1117 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/94262d0d290e4bff92c1f6c1f71afca7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1117 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1116 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/15/dailydogo.html" />
      <updated>2024-12-15T21:47:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1116 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c37a3fa7cf84ea18ff93c8c7e6775f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1116 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1115 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/14/dailydogo.html" />
      <updated>2024-12-14T20:06:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1115 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/08574e5d4cb94ac4955dec0760375289.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1115 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1114 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/13/dailydogo.html" />
      <updated>2024-12-13T19:10:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1114 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0fda420a710a4aa6b82589270e5299a3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1114 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1113 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/12/dailydogo.html" />
      <updated>2024-12-12T19:01:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1113 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b40747446c3149ee9d06d935f4dd8491.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1113 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1112 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/11/dailydogo.html" />
      <updated>2024-12-11T19:12:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1112 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3a960e22ef544b7b8a3670aba1c4caee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1112 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1111 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/10/dailydogo.html" />
      <updated>2024-12-10T21:11:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1111 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b8cc8a135b49d7a61e249897608c2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1111 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1110 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/09/dailydogo.html" />
      <updated>2024-12-09T21:40:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1110 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/89d1f9ebaf8a431eb8006a066a60a3ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1110 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1109 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/08/dailydogo.html" />
      <updated>2024-12-08T07:51:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1109 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8313a142fd848489e091133dcd35c55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1109 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1108 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/07/050402.html" />
      <updated>2024-12-07T03:04:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/07/050402.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1108 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d71c8e2e6884d2ebb5bce83e268ca74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1108 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1107 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/07/dailydogo.html" />
      <updated>2024-12-07T03:03:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1107 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/720265db12214b989aad176bbdcf9dca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1107 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Yearly Theme 2024 Recap - Year Of Sleep



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html" />
      <updated>2024-12-07T02:59:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-12-08 - Fixed a typo&lt;/li&gt;
&lt;li&gt;2024-12-08
&lt;ul&gt;
&lt;li&gt;Added a line about my uncertainty about Sleep++&#39;s sleep duration score - is it sleep debt or something else after all?&lt;/li&gt;
&lt;li&gt;Added a few words to clarify that Oura was not Apple Health&#39;s number one sleep data source&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2025-06-17 - Wrote a small follow-up post: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/17/oura-renewal/&quot;&gt;I Renewed My Oura Membership Subscription&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;blog-post&quot;&gt;Blog Post&lt;/h2&gt;
&lt;p&gt;Even though I do not listen to the Cortex podcast anymore, because it became too far removed from how normal salaried workers can organize their lives, one idea I have taken from it, is the idea of the yearly theme.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Here&#39;s one of the podcast hosts, CGP Grey, introducing the concept:&lt;/p&gt;
&lt;div id=&quot;NVGuFdX5guE&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/NVGuFdX5guE&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;For three years I have done this now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2022 - Year Of The DIFF - (Doing, Intention, Focus, Fun)&lt;/li&gt;
&lt;li&gt;2023 - Year Of Analysis&lt;/li&gt;
&lt;li&gt;2024 - Year Of Sleep&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2022 and 2023 where not super successful in the sense that I lost touch with these themes for considerable amounts of time in their corresponding year. But at the same time these themes were always there offering a frame to do something, don&#39;t do something, reflect and consider adoption of new things or just to reject them.&lt;/p&gt;
&lt;p&gt;2024, the Year Of Sleep has so far been the most successful. A big part of this is the considerable amount of money I (or in one case somebody else) invested to make this theme more present in my live:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bought a year of &lt;a href=&quot;https://www.risescience.com&quot;&gt;Rise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bought An &lt;a href=&quot;https://ouraring.com&quot;&gt;Oura Ring&lt;/a&gt; + a year of their &lt;a href=&quot;https://ouraring.com/membership&quot;&gt;Membership&lt;/a&gt; premium subscription&lt;/li&gt;
&lt;li&gt;I got an Apple Watch Series 9 as a gift&lt;/li&gt;
&lt;li&gt;Bought &lt;a href=&quot;https://autosleepapp.tantsissa.com&quot;&gt;AutoSleep&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bought a year of &lt;a href=&quot;https://www.gentler.app&quot;&gt;Gentler Streak&lt;/a&gt; which added at some point explicit &lt;a href=&quot;https://gentlerstories.notion.site/Gentler-Streak-Newsroom-14d96e7b0f974525b7c3eb3c8cc2a822&quot;&gt;sleep analysis&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I had used &lt;a href=&quot;https://www.sleepcycle.com&quot;&gt;Sleep Cycle&lt;/a&gt; for years before looking into other means of tracking my sleep, so I&#39;d say I have a pretty good general idea of what sleep tracking is all about and as of this year what is out there, especially after checking out so many other sleep tracking apps.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from sleep cycle, showing of that I have tracked 1271 nights according to it. This includes many nights this year tracked with other apps, the Apple watch or my Oura ring.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.48.29.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;h3 id=&quot;sleep-tracking-options-are-pretty-much-on-par-with-each-other&quot;&gt;Sleep Tracking Options Are Pretty Much On Par With Each Other&lt;/h3&gt;
&lt;p&gt;To get an idea about the differences and similarities in sleep tracking I wear both my watch and my ring at night and can say that for all practical purposes the differences between wearing a watch, a ring, or using an app listening to me sleep via microphone are pretty negligible, it seems. Or maybe not negligible, but maybe those differences are less important as long as you stick to one thing and define your baseline based on those measurements.&lt;/p&gt;
&lt;p&gt;What I mean is this: Apple Health reports, that I have slept 7 hours and 10 minutes, while Oura is clocking in at 8 hours for time asleep for today. As long as you always go with one or the other, you&#39;ll be fine. As a result, you might say that you need between 7 and 7.5 hours according to Apple Health whereas you might say your sleep need is more like 7:45 to 8:15 according to Oura&#39;s measurements (these numbers are made up, but hopefully get the idea across). Third party apps like Rise or Gentler Streak might calculate a sleep need different from these as well, most apps just ask you what your sleep need is, as if this would be super obvious for people to know. Anyways: Pick your poison and stick to it.&lt;/p&gt;
&lt;p&gt;EDIT: I should clarify that Oura is not the number one sleep data source and therefore what was tracked in Apple Health was almost assuredly not the ring (except in circumstances where I didn&#39;t wear my watch). I changed this after publishing this article for a couple of nights but because Apple and Oura interpret the sleep data from the ring differently, you still get differences in sleep duration et. al. So sticking to one device and app as a baseline is still good advice.&lt;/p&gt;
&lt;h3 id=&quot;sleep-debt-the-only-good-measure-seems-so&quot;&gt;Sleep Debt - The Only Good Measure? Seems so.&lt;/h3&gt;
&lt;p&gt;Most measures are relatively meaningless to the average person.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Overall, then, wearable sleep trackers are already pretty good, and they will likely continue to improve. The next question—the really hard one—is what we should do with the data. If cyclists are getting less REM sleep after mountain stages, what should they do differently? “Ride easier” isn’t useful advice; and it hardly seems like we need a fancy algorithm to give us the usual sleep-hygiene advice about bedtimes, alcohol, and electronics before bed.
— &lt;a href=&quot;https://www.outsideonline.com/health/training-performance/the-problem-with-tracking-sleep-data/&quot;&gt;The Problem with Tracking Sleep Data&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is also my feeling: The data is pretty good, but I didn&#39;t really know what to do with it, so most of it gets tracked but then ignored.&lt;/p&gt;
&lt;p&gt;The only meaningful measure (for me!) I have found, is sleep debt. Here it is as defined by Rise:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sleep debt, simply defined, is the amount of sleep that you owe your body over the past 14 days or so. It’s a running total of the hours of sleep you’ve missed, relative to your sleep need.
— &lt;a href=&quot;https://www.risescience.com/improve-sleep-hygiene#two-laws-of-sleep&quot;&gt;The Rise Science Guide to Improving Your Sleep - The Two Laws of Sleep - Sleep Debt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Another way to put this is: If you sleep less one night, you&#39;ll probably need to sleep more later. The good thing is that you can control sleep debt - as opposed to, say, amount of deep sleep: You can actually sleep in, stay in bed, go earlier to bed, etc. and it will have a direct impact on your sleep debt (insomnia, external factors and similar issues notwithstanding).&lt;/p&gt;
&lt;p&gt;So it seems to certainly be a &lt;em&gt;choice&lt;/em&gt; to make for Gentler Streak to not include this measure:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;While sleep debt is widely popular, it lacks solid scientific backing, and it&#39;s more of a patch to the wound than allocating and addressing the source of pain. While testing various sleep devices and apps, we found that the short-term sleep overviews provide better insights into your sleep habits, helping you spot patterns in duration, consistency, and sleep stages so you can improve your sleep hygiene over time. Rather than “repaying” lost sleep by sleeping in on weekends, focusing on &lt;em&gt;consistent sleep hygiene&lt;/em&gt; will be more beneficial to your wellbeing. Catching up on sleep doesn’t erase the stress your body endures from lack of sleep during the week. Doing so over time can take a toll on your health. Being aware of your overall sleep hygiene, prioritizing it, and making adjustments can lead to better rest and recovery and have long-term positive effects on your health.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I mean, I get it, but I have a &lt;em&gt;very&lt;/em&gt; hard time believing that short-term sleep overviews are &lt;em&gt;scientifically&lt;/em&gt; better than the concept of sleep debt.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; Wikipedia seems to suggest that sleep debt is somewhat ill defined and it also seems that more sleep debt doesn&#39;t always translate to worse performance:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is debate among researchers as to whether the concept of sleep debt describes a measurable phenomenon.[…]
In one study, subjects were tested using the psychomotor vigilance task (PVT). Different groups of people were tested with different sleep times for two weeks: 8 hours, 6 hours, 4 hours, and total sleep deprivation. Each day, they were tested for the number of lapses on the PVT. The results showed that, as time went by, each group&#39;s performance worsened, with no sign of any stopping point. Moderate sleep deprivation was found to be detrimental; people who slept 6 hours a night for 10 days had similar results to those who were completely sleep deprived for 1 day.
— &lt;a href=&quot;https://en.wikipedia.org/wiki/Sleep_debt&quot;&gt;Wikipedia: Sleep debt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;However: From what is available and useful, has actually been scientifically studied and can be directly manipulated by the user&#39;s actions, it seems still the right move to concentrate on sleep debt: If I sleep more, then this measure goes down and if I fail to sleep enough, the measure goes up. How sleep debt is defined in the app might be the topic of debate, but it still correlates with my own feelings as well, since I will feel worse if I have slept less over some time versus if I slept a lot over the same timespan.&lt;/p&gt;
&lt;p&gt;I also found this comment on sleep debt on reddit, which seemed believable:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(for reference I hold a BRPT and ACP-sleep and lecture on the pathophysiology of sleep disorders at a post grad level)[…]
Your question seems to relate to mild, and partial sleep restriction and then being able to make up this sleep debt… firstly, yes sleep debt is an accepted theory (I don’t think I’ve heard it called a theory, I’ve always considered it a given). And secondly yes there is quite a bit of literature that looks at making up for sleep restriction, often using catch up sleep on weekends as the model being studied. My understanding is providing you avoid significant chronic long term sleep deprivation, regular catch up sleep is likely to be sufficient to avoid significant health implications from mild cyclic sleep restriction.
— &lt;a href=&quot;https://www.reddit.com/r/askscience/comments/ou2wkd/is_sleep_debt_from_accumulated_sleep_loss_real/&quot;&gt;Reddit User Phil Teuwen answering another user&#39;s question in r/askscience &amp;quot;Is sleep debt from accumulated sleep loss real according to current understanding?&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;lots-of-useless-gimmicks&quot;&gt;Lots of Useless Gimmicks&lt;/h3&gt;
&lt;p&gt;The world of sleep apps is filled with somewhat useless features that don&#39;t really make a difference. I tried tagging various activities in the Oura app to see if they had an impact on my sleep, but it didn&#39;t really lead to any interesting insights. That my total sleep decreases after I tag coffee isn&#39;t actually that helpful - although it is kind of nice to know that this is actually the case, I guess.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from Oura showing a part of scren about my &amp;amp;quot;discoveries - Track the impact of your tags on your biometrics&amp;amp;quot;. Under the tag Coffee it reads &amp;amp;quot;Your total sleep decreases after you tag Coffee&amp;amp;quot;.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.06.47-cropped.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;Rise has a feature where it lets you rate your last night&#39;s sleep, which is another thing to do without a lot of benefits, it feels like. Maybe if you&#39;re unsure or see discrepancies between for example your sleep debt and how you feel in the morning, but for me sleep debt is itself a pretty good gauge already. That is to say, I feel my sleep was better when I slept longer, but 4 hours of sleep will in all likelihood always feel terrible the next day.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from the Rise app. In it we see a prompt asking me to rate my subjective sleep quality by rating it from poor to awesome on a 5 step scale.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-12-07-at-03.13.24.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;h3 id=&quot;sleep-hygiene-is-hard-melatonin-helped&quot;&gt;Sleep Hygiene Is Hard - Melatonin Helped&lt;/h3&gt;
&lt;p&gt;Since I am living a real, full-blown adult live with a partner, a dog, a job and constantly changing and shifting priorities, interests and challenges, it is maybe unsurprising that prioritizing sleep hygiene - or even just parts of it, like regularly going to sleep on time - is actually very difficult.&lt;/p&gt;
&lt;p&gt;Regardless, I&#39;m happy to report that, according to Apple Health, I have slept about an hour more, 7:26 in 2024 vs. 6:29 in 2023, on average. This figure will be somewhat inaccurate, since I have also switched sleep trackers and so forth, but I do not believe the trend is just entirely imaginary since I also feel more rested, on average, if less so than those numbers might make it seem.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot form Apple Health showing the my average time asleep has improved as described in the paragraph above: 6 hours 29 mins in 2023 vs. 7 hours 26 mins in 2024.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/sleep.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;One of the most important enablers of sleep success for me was using melatonin. If I take it early enough, about 4 hours before I plan to go to sleep, I will actually be drowsy enough that I&#39;m in the &amp;quot;nothing else matters, but sleep&amp;quot; zone, which is great for going to sleep on time instead of partaking in &lt;a href=&quot;https://en.wikipedia.org/wiki/Bedtime_procrastination&quot;&gt;Revenge Bedtime Procrastination&lt;/a&gt;, which I&#39;m a grandmaster in.&lt;/p&gt;
&lt;p&gt;Another thing that helped is sleeping with a sleep mask. The slight pressure on my eyes and the fact that I have to take the sleep mask off to see something, makes a difference to me.&lt;/p&gt;
&lt;h3 id=&quot;autosleep-and-sleep&quot;&gt;Autosleep And Sleep++&lt;/h3&gt;
&lt;p&gt;I wanted to say something about &lt;a href=&quot;https://autosleepapp.tantsissa.com&quot;&gt;Autosleep&lt;/a&gt;, because it is a one-time purchase app that stand out for this fact alone. Autosleep is weird. On the one hand it seems exactly like the nerdy non-subscription solution with lots of interesting features that I ought to like, but it seems to have problems with accuracy and I find it very unintuitive to read their graphs and UI or configure it correctly.&lt;/p&gt;
&lt;p&gt;It doesn&#39;t help that what I consider a normal weekend morning in which I wake up - after having gone to bed at 3 or 4 in the night - at 8 or 9 to take out the dog and give it food just to sleep for four more hours, seems to be impossible for Autosleep to wrap its circuits around. Sleep trackers in general have a hard time accommodating this pattern. The best is Oura as long as I don&#39;t open the app and let the ring sync. Apple&#39;s sleep tracking can deal with this, too (sometimes), as long as I don&#39;t end sleep focus. But Autosleep is by far the worst at making sense of this.&lt;/p&gt;
&lt;p&gt;So this app sadly wasn&#39;t worth its cost at all.&lt;/p&gt;
&lt;p&gt;Very recently I looked into &lt;a href=&quot;https://sleepplusplus.app&quot;&gt;Sleep++&lt;/a&gt;, which I would describe as an alternative Apple Health sleep data UI, but it seems to have similar problems with fragmented sleep as AutoSleep. The UI is familiar to me, because I&#39;m a long time user of the step counter app Pedometer++ by the same developer. If it would be better in dealing with my idiosyncratic sleeping patterns on weekends this would probably be all I need.&lt;/p&gt;
&lt;p&gt;(EDIT:) I am not sure anymore if I understood Sleep++&#39;s Duration Score correctly. When I wrote this, I thought it was a sleep debt score, but I am not sure if this is actually the case.&lt;/p&gt;
&lt;h3 id=&quot;looking-ahead&quot;&gt;Looking Ahead&lt;/h3&gt;
&lt;p&gt;All in all, I&#39;m pretty happy with the results of this year, because I got a little more sleep. But I also learned that there is lots of snake oil in sleep tracking and most of the tracked data is actually kind of useless to me. However, not everything is useless either. The point of sleep tracking is not that different from tracking workouts: It is a kind of motivational tool that makes you engaged with your body, although progress is much less visible, because we all sleep more or less the same amounts - jock or nerd - and being into sleep is not exactly the same as going to the gym and seeing those weights and reps go up: you may become more aware of your sleep needs and habits, but there are very little gains to report. For example, I don&#39;t foresee that my average will improve beyond that one hour going forward. And should it? Should I sleep 9 or 10 hours? Will that make a palpable difference? At what point do I sleep too much?&lt;/p&gt;
&lt;p&gt;From all those things I tried, here&#39;s what&#39;s probably going to stay in 2025 and beyond:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Oura&#39;s sleep tracking is seemingly better than the Apple Watch&#39;s, but I do not think I will buy another ring. I&#39;d rather buy a new Watch since 300€+ for a ring is pretty expensive (even though I love that Oura is made or at least designed/engineered in Finland). But as long as this ring works I will use it.&lt;/li&gt;
&lt;li&gt;I will also wear my Apple Watch, because it can wake me up without making sounds and I like to have a fallback if I forget to put my ring on or whatever&lt;/li&gt;
&lt;li&gt;Rise has great sleep debt tracking and puts this measure front and center, but it&#39;s too expensive for what it offers. However, since sleep quality scores are so useless, I might end up buying another year, since Oura&#39;s app doesn&#39;t include sleep debt at all and Autosleep/Sleep++ only works with my Apple Watch (and has problems tracking fragmented sleep, see above).&lt;/li&gt;
&lt;li&gt;Taking melatonin on most week nights and wearing a sleep mask.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S.: I also recently learned that according to Apple Health I may have sleep apnoea. Which is not the same as snoring, if I understand correctly. I will have to look into that, since this might also impact my sleep.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from my Apple Health app with a warning from 28. Nov that reads: &amp;amp;quot;Your breathing shows signs of possible sleep apnoea.
Over multiple sleep sessions, Apple Watch has recorded elevated breathing disturbances that would be classified as moderate or severe sleep apnoea.&amp;amp;quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/view-sleep-highlights.jpeg.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This is why I like tracking biometric data: It&#39;s an opportunity to look into something health related that might otherwise go unnoticed or even if it is noticed its relative severity is too unclear to act upon it. This sleep apnoea thing might also lead to nothing or only very little, but I&#39;m doing something about it, because my health data suggest that I should consider it. Otherwise I would&#39;ve probably thought &amp;quot;everbody snores&amp;quot; and let that be the end of it…&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I&#39;ve apparently talked about this in &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/18/the-early-riser.html&quot;&gt;a micro podcast episode of 2022&lt;/a&gt;. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;And sleep hygiene is actually problematic, too &lt;a href=&quot;https://en.wikipedia.org/wiki/Sleep_hygiene&quot;&gt;if Wikipedia is to be believed&lt;/a&gt;: &amp;quot;However, as of 2021, the empirical evidence for the effectiveness of sleep hygiene is &amp;quot;limited and inconclusive&amp;quot; for the general population and for the treatment of insomnia[…]&amp;quot; &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;And in any case I shouldn&#39;t prioritize having the best 4 hour sleep nights, but having more 8 hour+ sleep nights. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Yearly Theme 2024 Recap - Year Of Sleep

        https://blog.martin-haehnel.de/2024/12/07/yearly-theme-recap.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1106 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/04/dailydogo.html" />
      <updated>2024-12-04T20:48:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1106 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d001f0c4de1d4d4b9c8ad55700b61e02.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1106 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          KC Davis: How to do laundry when you&#39;re depressed



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/04/kc-davis-how.html" />
      <updated>2024-12-04T07:52:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/04/kc-davis-how.html</id>
      <content type="html">&lt;p&gt;Mastodon (&lt;a href=&quot;https://hachyderm.io/@skinnylatte/113592514717552602&quot;&gt;Adrianna Tan&lt;/a&gt;) made me aware of this today:&lt;/p&gt;
&lt;div id=&quot;M1O_MjMRkPg&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/M1O_MjMRkPg&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;I cried watching this. mental health and compassion is so important. If you&#39;re not the one struggling today, maybe a loved one is. Transpose this, so you&#39;re compassionate towards others in this case.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/04/kc-davis-how.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.strugglecare.com&quot;&gt;KC Davis also has a Website.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;P.S.: The usual disclaimer about Ted talks applies: They are meant to make you emotional and the ideas shared may be less unique, less mind blowing, etc. than they seem at first. But that doesn&#39;t make this simple reminder and its particular spin on care tasks less important (IMHO). But take this in with an awareness of its framing.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;If you can! I know that this can also be hard. Here&#39;s the thing: Caring for others is also a care task. So similar wisdom applies: Make it work for you by being kind to yourself, also. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/12/04/kc-davis-how.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        KC Davis: How to do laundry when you&#39;re depressed

        https://blog.martin-haehnel.de/2024/12/04/kc-davis-how.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1105 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/03/dailydogo.html" />
      <updated>2024-12-03T21:13:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1105 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c7a942a92743499180fa4218bc6b38f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1105 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I do not hate my...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/03/i-do-not.html" />
      <updated>2024-12-03T10:01:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/03/i-do-not.html</id>
      <content type="html">&lt;p&gt;I do not hate my live at all. It&#39;s a pretty good live. As with all lives there are ups and downs, of course, but all in all: pretty good. But. The amount of shit I have to do and don&#39;t want to is astounding.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I do not hate my live at all. It&#39;s a pretty good live. As with all lives there are ups and downs, of course, but all in all: pretty good. But. The amount of shit I have to do and don&#39;t want to is astounding.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1104 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/02/dailydogo.html" />
      <updated>2024-12-02T21:14:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1104 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d80c03446dc146159b1c7796bbed2c6f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1104 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Well, that was fun....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/02/well-that-was.html" />
      <updated>2024-12-02T19:36:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/02/well-that-was.html</id>
      <content type="html">&lt;p&gt;Well, that was fun. #papersinsystems&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Well, that was fun. #papersinsystems</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Last week was...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/02/last-week-was.html" />
      <updated>2024-12-02T13:49:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/02/last-week-was.html</id>
      <content type="html">&lt;p&gt;Last week was somehow very unproductive at work. I guess free time was somewhat more exhausting than usual. We had a guest over and cooking and cleanup took me much longer than usual. So I slept less, which in turn meant I couldn&#39;t concentrate, which meant I had to work longer, which meant cooking and clean-up took longer... rinse and repeat.&lt;/p&gt;
&lt;p&gt;Although I slept badly on the weekend, too, I seem to have more brains so far.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Last week was somehow very unproductive at work. I guess free time was somewhat more exhausting than usual. We had a guest over and cooking and cleanup took me much longer than usual. So I slept less, which in turn meant I couldn&#39;t concentrate, which meant I had to work longer, which meant cooking and clean-up took longer... rinse and repeat. Although I slept badly on the weekend, too, I seem to have more brains so far.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1103 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/12/01/dailydogo.html" />
      <updated>2024-12-01T18:46:49Z</updated>
      <id>https://blog.martin-haehnel.de/2024/12/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1103 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5f329a271c794339936f9fbded6717e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1103 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1102 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/30/dailydogo.html" />
      <updated>2024-11-30T20:31:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1102 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/348284c4c93a49f5b9d9623de3383f70.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1102 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1101 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/29/dailydogo.html" />
      <updated>2024-11-29T17:40:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1101 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fccd39506174699aae64b8668adfe76.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1101 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1100 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/28/235421.html" />
      <updated>2024-11-28T21:54:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/28/235421.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1100 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5e1f6a80265a45ca9a55ad31b2b4ec7b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1100 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1099 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/28/dailydogo.html" />
      <updated>2024-11-28T21:54:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1099 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6084c055f2254b14a4cf18acdf7a7da2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1099 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1098 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/26/205911.html" />
      <updated>2024-11-26T18:59:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/26/205911.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1098 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/76ba6581c8634e6a9aaddeb413af452d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1098 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1097 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/26/dailydogo.html" />
      <updated>2024-11-26T08:25:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1097 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e538f3fcf3a045479fa0f7a410d2cc79.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1097 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Another non-acceptance answer to the fatalistic turn: Fuck You Optimism



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/25/things-are-inevitable.html" />
      <updated>2024-11-25T08:38:55Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/25/things-are-inevitable.html</id>
      <content type="html">&lt;p&gt;&amp;quot;Things are inevitable and there is nothing you can do about it&amp;quot;, is at the core of the &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;The Fatalistic Turn&lt;/a&gt;. But the answer to this doesn&#39;t need to be acceptance. It just has to be an answer.&lt;/p&gt;
&lt;p&gt;It could be &amp;quot;F**k You Optimism&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We need this kind of radical hope now more than ever. Not because it will save us – no one is coming to save us – but because the alternative is paralysis. The systems want us to feel small, powerless, apathetic.
—&lt;a href=&quot;https://mastodon.social/@Daojoan/113540448146134959&quot;&gt;JA Westenberg&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And another quote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Even when it feels futile. Especially then. Because in a collapsing world, defiant hope might be the only thing worth holding on to.
—&lt;a href=&quot;https://mastodon.social/@Daojoan/113540448190420741&quot;&gt;JA Westenberg&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://mastoreader.io/?url=https%3A%2F%2Fmastodon.social%2F%40Daojoan%2F113540447906749333&quot;&gt;Thread (for easy reading) on Mastoreader&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mastodon.social/@Daojoan/113540447906749333&quot;&gt;First post in the thread&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Another non-acceptance answer to the fatalistic turn: Fuck You Optimism

        https://blog.martin-haehnel.de/2024/11/25/things-are-inevitable.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1096 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/24/213401.html" />
      <updated>2024-11-24T19:34:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/24/213401.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1096 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9b76479de22b45608d88794450275fc2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1096 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Forest As System



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html" />
      <updated>2024-11-24T16:04:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-07-10 - I added a link to my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/&quot;&gt;Systems As Imagined vs&amp;period; Systems As Found&lt;/a&gt; post, as I am talking about it in my text below - event &lt;em&gt;this text right you&#39;re reading right now&lt;/em&gt; sparked writing down the distinction more clearly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Kinda along the lines of &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html&quot;&gt;Paradigms Are Strategic Tools&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;The social media researcher Erin Kissane reminds us that the current terrible landscape of the public social internet is made and sustained by people and that this too shall pass:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The dangers of the situation are obvious and real, but it matters that we remember that the world’s big platforms are steered not by shadowy forces, but by teams of gold-rush-addled dorks whose sometimes-well-meaning employees are stuck frantically LARPing world government on internal forum software.
[...]
But all these platforms and attendant dipshits will be replaced, eventually, and what happens next isn&#39;t guaranteed.
[...]
So the necessary counterpart to understanding that the Dark Forest Internet complex obscures the arbitrary and temporary nature of the current situation might be accepting that there is no moral arc of the world. Our systems bend toward justice when we bend them, and keep on bending them, forever.
— &lt;a href=&quot;https://www.wrecka.ge/against-the-dark-forest&quot;&gt;Against The Dark Forest&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The article is well worth a read.&lt;/p&gt;
&lt;p&gt;I did not agree with everything in it though. The dark forest framing is, I think, less flawed than is claimed. I especially think that &lt;a href=&quot;https://maggieappleton.com/cozy-web&quot;&gt;Maggie Appleton&#39;s framing&lt;/a&gt; as expressed in her drawing is great. Because it incorporates not only the forest and the cozy web, but also an undergrowth made of digital gardens, newsletters and RSS Feeds. So public spaces that are nonetheless somewhat hidden. This layer is missing in Kissane&#39;s text as is the dark web (where morals are decomposing) under the cozy web.&lt;/p&gt;
&lt;p&gt;I think the impulse here is to point out that the forest was planted and won&#39;t last forever. And I think that is a missing piece in this metaphor.&lt;/p&gt;
&lt;p&gt;But. What I will always disagree with is to frame the expression of a system as a simple question of choice, of good vs. bad intentions. A system as is described in this image is not easily changed.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Given all of this, it seems questionable for technologists to cede the territory of the public internet to their fellow-but-worse technologists and the predatory forces they assemble and arm.
[…]
The public social internet is worth designing and governing in a way that demonstrates less than total amnesia about the history of human civilizations and the ways we’ve learned to be together without killing each other. For people with the ability and willingness to work on network problems, the real choice isn&#39;t between staying on the wasteland surfaces of the internet and going underground, but between making safer and better places for human sociability and not doing that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I find the insinuation here questionable. I am a being of the undergrowth. I love the small and indie web. Calling me unpolitical or a non-combatant because I am not re-inventing or re-design social platforms and am therefore basically an enemy, seems wrong. Maybe this is not what has been said, but I kinda got the impression. &amp;quot;Don&#39;t be a badger!&amp;quot;, it is demanded. But what if you are a badger? I am all for digital spaces reimagined as public goods, but to think that it could only happen in the forest layer and if you&#39;re not into forestry (but rather into gardening or whathaveyou) you&#39;re doing it wrong, is naive to me.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Furthermore it seems that just because current iterations of the big social media platforms might die, that we&#39;re not finished dealing with the nature of complex systems itself and therefore the flaws of platforms - the hate, the predators, the data capture, etc. pp. - are not something you just &amp;quot;design out&amp;quot; of them in the next iteration. Because you can&#39;t. And I don&#39;t mean that you couldn&#39;t make changes to the current crop of platforms, but change in any direction you want to take this, is a fickle thing: Exert too much control and it becomes oppression and people will switch platforms. Exert too little and it turn into a free for all and people will switch platforms. Give too many tools to people and the platform will appear too complex. People will switch platforms. Give no tools (or not the right ones) and the platform will appear too restricted. And on and on. Current platforms form a delicate balance. They are the result of a lot of fine-tuning and what is a viable social network will have to play within the realm of possible viable platforms.&lt;/p&gt;
&lt;p&gt;So as I said above: Just &amp;quot;unfuck the networks&amp;quot; is a naive notion. It&#39;s a &lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/10/systems-as-imagined-vs-systems-as-found/&quot;&gt;systems as imagined vs&amp;period; systems as found&lt;/a&gt; &amp;quot;fallacy&amp;quot;: &lt;a href=&quot;https://www.youtube.com/watch?v=2S0k12uZR14&quot;&gt;A distinction made by Richard Cook&lt;/a&gt; that I&#39;ve found very helpful to explain what is missing from people&#39;s arguments who are about ideas and propose solutions mainly based on (new or reframed) ideas only: A system found is a freaking mess. And so is the dark forest that is the publicly visible internet.&lt;/p&gt;
&lt;p&gt;So, I guess, what I&#39;m saying is that a forest is not designed but maintained by its inhabitants. And this maintenance is also not done on the whole thing at once by only well meaning, well educated and wise deers and squirrels (people and institutions). The internet is a wilderness. And as such it will always include predators: skilled and unskilled ones, big ones and small ones. Some we recognize as part of the forest, others we think of as &amp;quot;meta predators&amp;quot;. It is therefore also not a controlled or a flawless place where you can just be and do, guaranteed free from harm. This is exactly a thing that is more possible in smaller, more constrained places.&lt;/p&gt;
&lt;p&gt;The social internet doesn&#39;t &amp;quot;simply exist&amp;quot; for us to just inhabit, true. It is &lt;em&gt;made&lt;/em&gt;, yes. By us. Partly yes. But it being made doesn&#39;t mean that it doesn&#39;t exhibit the qualities of complex social systems.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I guess later in the text it is more said that the forest should be part of the sphere of influence, instead of being the sole layer that counts: &amp;quot;Mole’s experience has opened out to encompass the whole of the wood and countryside and his friendships...&amp;quot;. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Forest As System

        https://blog.martin-haehnel.de/2024/11/24/forest-as-system.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1095 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/24/dailydogo.html" />
      <updated>2024-11-23T22:25:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1095 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/63a1a2f2ca104727860f50981ebe80cf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1095 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1094 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/22/dailydogo.html" />
      <updated>2024-11-22T18:45:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1094 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/abb71ceab67c4c808897ab888e281e37.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1094 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          &quot;...will discuss our...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/22/will-discuss-our.html" />
      <updated>2024-11-22T08:28:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/22/will-discuss-our.html</id>
      <content type="html">&lt;p&gt;&amp;quot;...will discuss our polycrisis, and the swift and holistic reform of global governance institutions that is needed to respond to these urgent transnational and planetary challenges we are facing...&amp;quot;&lt;/p&gt;
&lt;p&gt;My whole live has been spent living with the apparent blindness these sentences express. Activists of the alarmist school: There is no swift and holistic reform coming! How can you be interested in change but not understand this? Or if you do: Why not be honest with fellow non-alarmist activists?&lt;/p&gt;
&lt;p&gt;EDIT: &amp;quot;My whole live has been spent living with the apparent blindness these sentences express.&amp;quot; What I mean: So many well-meaning people I have encountered - directly or indirectly - seem to believe this is possible. What is interesting: This cry for swift action, makes me think that there must be a sound argument for the plausibility of said swiftness. But those arguments never survive closer inspection (by me, that is to say: they do not seem more plausible), so it&#39;s hard to know how it would feel to be able to believe it. The only reason I know of is that it is only ever said strategically and not ever actually meant. So it&#39;s similar to what protest actually is about (&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html&quot;&gt;not rational discourse in order to convince fellow citizens, but disruption&lt;/a&gt;).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        &amp;quot;...will discuss our polycrisis, and the swift and holistic reform of global governance institutions that is needed to respond to these urgent transnational and planetary challenges we are facing...&amp;quot; My whole live has been spent living with the apparent blindness these sentences express. Activists of the alarmist school: There is no swift and holistic reform coming! How can you be interested in change but not understand this? Or if you do: Why not be honest with fellow non-alarmist activists? EDIT: &amp;quot;My whole live has been spent living with the apparent blindness these sentences express.&amp;quot; What I mean: So many well-meaning people I have encountered - directly or indirectly - seem to believe this is possible. What is interesting: This cry for swift action, makes me think that there must be a sound argument for the plausibility of said swiftness. But those arguments never survive closer inspection (by me, that is to say: they do not seem more plausible), so it&#39;s hard to know how it would feel to be able to believe it. The only reason I know of is that it is only ever said strategically and not ever actually meant. So it&#39;s similar to what protest actually is about (not rational discourse in order to convince fellow citizens, but disruption).

        https://blog.martin-haehnel.de/2024/11/22/will-discuss-our.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1093 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/21/dailydogo.html" />
      <updated>2024-11-21T19:35:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1093 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b86f8a671efb4bad904184c8c80be02a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1093 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Python really is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/21/python-really-is.html" />
      <updated>2024-11-21T09:49:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/21/python-really-is.html</id>
      <content type="html">&lt;p&gt;Python really is almost on par with Javascript as regards to reinventing wheels.&lt;/p&gt;
&lt;p&gt;Venn diagram taken from &lt;a href=&quot;https://alpopkes.com/posts/python/packaging_tools/&quot;&gt;this awesome overview of python tools&lt;/a&gt;.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A venn diagram showing overlapping circles/categories going clockwise from the top: package management, python version management, package building, package publishing, environment management. In the diagram various tools are put within the circles. Pipenv is marked with a red circle, as it is the one that was talked about in the original context of the linked article. pipenv is located at the intersection of package management and environment management, whereas poetry is located at the intersection of package publishing environment management and package management.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/pipenv-updated-08-2024.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Python really is almost on par with Javascript as regards to reinventing wheels. Venn diagram taken from this awesome overview of python tools.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1092 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/20/dailydogo.html" />
      <updated>2024-11-20T19:24:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1092 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c45b731319041b3888a5dad4f179c0e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1092 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1091 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/19/dailydogo.html" />
      <updated>2024-11-19T18:47:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1091 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ff2f57ec5279439fa32bf687eb8c26b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1091 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1090 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/18/dailydogo.html" />
      <updated>2024-11-18T17:52:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1090 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/772e8d585c6540e989f433a0d2b265d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1090 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It is a little funny...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/18/it-is-a.html" />
      <updated>2024-11-18T08:34:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/18/it-is-a.html</id>
      <content type="html">&lt;p&gt;It is a little funny how my Oura ring claims that my stress levels are low when they are anything but. (I know physical stress is not the same as psychological stress, but still rubbs me the wrong way.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It is a little funny how my Oura ring claims that my stress levels are low when they are anything but. (I know physical stress is not the same as psychological stress, but still rubbs me the wrong way.)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1089 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/17/dailydogo.html" />
      <updated>2024-11-17T19:29:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1089 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d0b1fb35f65f49029e5708ebaf8e4830.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1089 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1088 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/16/223443.html" />
      <updated>2024-11-16T20:34:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/16/223443.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1088 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aab3cb4ae3b5404380d174a851c7b6bd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1088 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1087 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/16/dailydogo.html" />
      <updated>2024-11-16T07:04:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1087 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a38e7c99d1d746198d437b6df4e3993b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1087 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1086 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/14/dailydogo.html" />
      <updated>2024-11-14T18:10:15Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1086 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0efcb7b68c4f39b297e329412c5b77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1086 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Shift To Europe



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html" />
      <updated>2024-11-14T17:17:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html</id>
      <content type="html">&lt;h3 id=&quot;my-general-standpoint&quot;&gt;My General Standpoint&lt;/h3&gt;
&lt;p&gt;Since I hadn&#39;t yet written about it here (&lt;a href=&quot;https://social.lol/@matti/113459788434275811&quot;&gt;but made allusions to it on mastodon&lt;/a&gt;): I am concerned about and disappointed in the US, especially its tech sector. A snarky reader could point out that disappointment in the tech sector is a universal experience and that snarky reader wouldn&#39;t be wrong. However, it seems correct to assume that big tech - and all big (software) tech is US tech at this point - is bad.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;all big tech companies are trying to exploit labor in various forms&lt;/li&gt;
&lt;li&gt;all big tech companies are trying to skirt regulation to keep the market fair and open&lt;/li&gt;
&lt;li&gt;all big tech companies are actively exploiting their relationship to their customers in various forms&lt;/li&gt;
&lt;li&gt;all big tech companies don&#39;t do enough for the environment nor do they give us options to buy products that are environmentally conscious[&lt;/li&gt;
&lt;li&gt;all big tech companies invest heavily in generative AI and market this tool for frivolous use cases&lt;/li&gt;
&lt;li&gt;the CEOs of all big tech companies bent the knee to a criminal after the election&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But not only big tech, also many smaller and medium-sized tech companies are based in the US and many of the tools that we use are US-based. And apart from us giving money and data to these US-based companies and therefore their economy, we as non-US customers don&#39;t matter in the same way as US-based customers. Also do our laws clearly not matter as much. And our values also don&#39;t matter in the same way.&lt;/p&gt;
&lt;p&gt;Now, everything is a lot more complicated than that. Just because things are made in Europe doesn&#39;t mean they are better, more ethical, safer or will respectfully engage with consumers/users. But a shift to Europe still means something. It&#39;s about control or at least access. If I&#39;m unlucky with a piece of software that is made in Europe, I do have different ways to enforce laws. I can try to find other users that have similar concerns and we could try to enforce or improve a given situation within the EU together.&lt;/p&gt;
&lt;p&gt;In practice, this is not an avenue I&#39;d want to ever go down, but it&#39;s still better to have it available, than to sit here on this side of the Atlantic and let people with their own problems and interests just take my money and data and otherwise don&#39;t care about me.&lt;/p&gt;
&lt;p&gt;Giving my money to Europeans also feels better. It pays salaries of fellow European workers or entrepreneurs. It also breaks the pattern that money and data for software just has to go to the USA: Even if that&#39;s not literally true in 100% of the cases, it seems to be the default. It doesn&#39;t have to be the default.&lt;/p&gt;
&lt;p&gt;There&#39;s also an opportunity here to reevaluate the landscape in terms of what is available as a self hosted solution. Is there maybe even a local first or local only option that suffices? In other words: Is there an open source tool or an app (as opposed to a service with a subscription) that could be used?&lt;/p&gt;
&lt;p&gt;So, most things in my setup can be replaced by something less invasive and more under my control. It&#39;ll take some work and it&#39;ll take some getting used to, but changing the things I use to get work done is certainly possible. This might not do a lot in the grand scheme of things, but it certainly makes me feel a little better and makes me live more according to my own beliefs and values.&lt;/p&gt;
&lt;h3 id=&quot;exceptions-exceptions-everywhere&quot;&gt;Exceptions, Exceptions everywhere&lt;/h3&gt;
&lt;p&gt;So with that said, it&#39;s not that easy or reasonably possible to just get rid of big tech altogether, as we all know. I certainly will also not just switch to worse apps just because &amp;quot;US bad&amp;quot;, although I&#39;ll use my momentum to reevaluate and to shake things up a bit.&lt;/p&gt;
&lt;p&gt;That being said, one bit tech company I just can&#39;t let go is Apple. All my personal devices are apple devices and even though I hate their rent seeking practices in the app store and some of their other behaviors (and &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html&quot;&gt;their recent ads&lt;/a&gt;, too), but by comparison it still seems to me the least bad option in consumer electronics. It&#39;s a little bit harder to say how committed they actually are to their stated goals: accessibility, education, caring for the environment, inclusion and diversity, privacy, equity and investments in a fair supply chain (all taken from the footer of the apple website under the heading of Apple Values), but be that as it may: Apple actually does give me the option to buy carbon neutrally produced products for example&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; and it still seems to me that what they say about privacy is not just empty talk.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fn3&quot; id=&quot;fnref3&quot;&gt;[3]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;I am also fine with using indie apps and services that are simply indispensable to me. Due comes to mind. And obviously Obsidian. &lt;a href=&quot;https://blog.martin-haehnel.de/categories/good-apps/&quot;&gt;Good Apps.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And finally I&#39;m willing to try new stuff. In a move almost diametrically opposed to the tone of this post, I recently started to use TickTick for example, even though it is US/China-based.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fn4&quot; id=&quot;fnref4&quot;&gt;[4]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h3 id=&quot;decisions-so-far&quot;&gt;Decisions, so far&lt;/h3&gt;
&lt;p&gt;I have not made many moves, yet. But two come to mind:&lt;/p&gt;
&lt;h4 id=&quot;jetbrains-in-vscode-out-mostly&quot;&gt;Jetbrains in, VSCode out (mostly)&lt;/h4&gt;
&lt;p&gt;Jetbrains is a company based in the Czech Republic that was founded by three Russians back in the day. That sounded an alarm at first. And to be honest I had my gripes about some of the UX with PHPStorm over the years (&lt;a href=&quot;https://blog.martin-haehnel.de/2022/06/16/ide-troubles-phpstorm.html&quot;&gt;1&lt;/a&gt;, &lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html&quot;&gt;2&lt;/a&gt;) so I never bothered to check it out further. However three things happened:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I am working on pretty big legacy php projects now, that make PHPStorm mandatory because Intelephense/VSCode can&#39;t handle the code base anymore.&lt;/li&gt;
&lt;li&gt;For a side project I started to use &lt;a href=&quot;https://laravel.com&quot;&gt;Laravel&lt;/a&gt; way more than ever before and fell in love with it. And falling in love with Laravel made me realize how good Jetbrains&#39; &lt;a href=&quot;https://laravel-idea.com&quot;&gt;Laravel Idea&lt;/a&gt; plugin is.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.jetbrains.com/blog/2022/12/06/update-on-jetbrains-statement-on-ukraine/&quot;&gt;I noticed that even though Jetbrains had connections to Russia, they ceased operations there, relocated all the people in their Russian locations and made clear their stance against the war in Ukraine.&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Having to switch IDEs for recreational programming and work - especially since working with Laravel in PHPStorm using the idea plugin is just so great - felt more and more cumbersome and so I kinda sorta just started to customize and use PHPStorm as my main IDE.&lt;/p&gt;
&lt;p&gt;Because my setup consists of two machines - a beefy &amp;quot;devbox&amp;quot; running linux and all the projects; and a MacBook Air as the client from which I do &amp;quot;remote work&amp;quot; through ssh on the devbox - 100% of my work is done &amp;quot;remotely&amp;quot;. That means I either use VSCode with their various remote extensions or use &lt;a href=&quot;https://www.jetbrains.com/remote-development/gateway/&quot;&gt;Jetbrains Gateway&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Whereas VSCode works with 1Password&#39;s SSH-Agent, Jetbrains Gateway does not and has the added annoyance that even when using a more conventional ssh-key makes you enter its passphrase twice for some reason. I&#39;ll have to look into that a little more, but for the time being I will use VSCode for source control and for more dev-ops-y tasks that require to edit a file here and there, but I&#39;m not working on a specific project adding features.&lt;/p&gt;
&lt;p&gt;Why even move away from VSCode? Isn&#39;t it open source? It is. And it is remarkable that Microsoft of all the companies has made a product that is just great in almost all aspects. But: It&#39;s still Microsoft and that always bothered me. I have to use various Microsoft enterprise products throughout my working day and still deal with Microsoft induced bs in my free time in the form of tech support. Their recent moves vis-a-vis Microsoft Recall are questionable at best. Microsoft is very often &lt;em&gt;not&lt;/em&gt; the least worst option and even though their free open source editor is one of the best you can get (&lt;a href=&quot;https://www.youtube.com/watch?v=urcL86UpqZc&quot;&gt;but what about emacs&lt;/a&gt;), it is actually not the best IDE for PHP-based development.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://intelephense.com/&quot;&gt;Intelephense&lt;/a&gt;, a 3rd party language server and vs code extension for PHP is great and impressive. AFAIK it is still developed by only one person! But it can&#39;t handle big repos and it lacks refactoring tools that you get when you use PHPStorm. A little earlier I pointed out that the Laravel Idea plugin for PHPStorm is amazing and there just doesn&#39;t exist a comparable alternative for VSCode.&lt;/p&gt;
&lt;p&gt;This is not a post about why PHPStorm is better than Visual Studio Code for PHP development, but there is another &amp;quot;social&amp;quot; point worth mentioning: In my circles almost everyone - certainly everyone at my current job - is using PHPStorm anyways. My company provided me with a license for it and all the documentation on how to setup a new project is basically written for PHPStorm users. When working together with another developer, it can be difficult to not get derailed by the different ways things work in vscode vs. PHPStorm. Especially when I am the one who needs help, I don&#39;t want to be asked all the time &amp;quot;why don&#39;t you just use PHPStorm...&amp;quot; as if that would solve the problem (it almost never does). I don&#39;t want to deal with that anymore.&lt;/p&gt;
&lt;p&gt;All of these things added up to me using vscode less and less. It depends a little on the project, but as it pertains to this blog post, I am actually quite happy that PHPStorm is based in the EU and that it became my main driver.&lt;/p&gt;
&lt;h4 id=&quot;actual-in-ynab-out&quot;&gt;Actual in, YNAB out&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ynab.com&quot;&gt;YNAB&lt;/a&gt; - or You need a budget - is an US-based budgeting app that I have used (and at times loved!) on and off for years at this point. It has been much cheaper in the past and they recently raised prices (again). Well, fortune would have it that I was made aware of a pretty comparable open source solution that is called &lt;a href=&quot;https://actualbudget.org&quot;&gt;Actual Budget&lt;/a&gt;. Is it more rickety and less pretty than YNAB? Yes. But does it have basically the same feature set PLUS a bank account syncing feature that works with my bank (which is something YNAB still doesn&#39;t offer) and costs &lt;em&gt;much&lt;/em&gt; less than YNAB? Also yes.&lt;/p&gt;
&lt;p&gt;I love that actual can be run super easily through the Malta-based hosting service &lt;a href=&quot;https://www.pikapods.com&quot;&gt;PikaPods&lt;/a&gt;. It&#39;ll cost me the equivalent of 16.92$ (so ~16€, but I don&#39;t know if that includes VAT or not...) instead of 109$ (+ VAT; so 103.21€ + 25,5% = 129.53€) per year. So after thinking about it for a couple of months I made the switch. The world didn&#39;t implode and I&#39;m still budgeting.&lt;/p&gt;
&lt;h3 id=&quot;parting-words&quot;&gt;Parting words&lt;/h3&gt;
&lt;p&gt;Sometimes something happens in the world and it somehow changes my whole approach to certain things. The very disappointing and worrying US-election and the (only slightly but still) better situation here in Europe - he says living in a country run by rightwing government that at this very moment dismantles the social democratic base that makes Finland so livable - made me reevaluate my setup: The apps and tools I use and what I&#39;m willing to spend for them - be that time, money, brain cycles or all of the above.&lt;/p&gt;
&lt;p&gt;I imagine that this&#39;ll continue and that I will continue to change apps and services in a way that makes them more Eurocentric. As I said above, this is more about potential control (and actual control if switching to something self hosted) than anything else, but I would lie if it wasn&#39;t also in part about a loss of trust.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I will say this a few times throughout this post: Not all big tech is US tech. But most is. Almost all big players in tech - desktop, tablet and phone os-es, social media platforms, cloud providers, etc. etc. are all US-based. That doesn&#39;t mean that non-US tech companies shouldn&#39;t be scrutinized. I just came to this topic via the recent US election, which is why the US looms so large here. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I think it&#39;s two at the moment: The Apple Watch 10 (which I own) and the Mac mini. And: Yes, I am aware that there are other companies that also produce environmentally conscious electronics. However, they do not run macOs, iOS or any of the myriad apps that I have invested money time and effort into. A little less snarky: Even their non-carbon-neutral laptops are made relatively sustainable. So much so that in a recent comparison of sustainable laptops the macbook (pro or air is a little unclear) comes in at third place. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn3&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;However: The right to privacy is sadly conditional. And it shouldn&#39;t be. But within democratic countries at least it seems to be the case that Apple&#39;s promise is not just hot air. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fnref3&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn4&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;In my defense: I started using it before this idea of trying to be more in control of the apps I use came to mind. And that this app is made in country under dictatorship and another governed by a volatile semi-democracy really sticks in my craw. Sadly(?), TickTick is very good. But I may switch to Things (made in Germany) or another task manager made in EU soon regardless. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html#fnref4&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Shift To Europe

        https://blog.martin-haehnel.de/2024/11/14/shift-to-europe.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Really good video...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/14/really-good-video.html" />
      <updated>2024-11-14T11:52:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/14/really-good-video.html</id>
      <content type="html">&lt;p&gt;Really good video about how #dog #training is different from testing: &lt;a href=&quot;https://www.youtube.com/watch?v=qOI8vZR0-_4&quot;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Really good video about how #dog #training is different from testing: www.youtube.com/watch</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1085 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/13/dailydogo.html" />
      <updated>2024-11-13T20:42:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1085 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c29340d7b0ea4465a39244de9587fda9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1085 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          .[@manton](https://m...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/13/manton-and-i.html" />
      <updated>2024-11-13T10:07:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/13/manton-and-i.html</id>
      <content type="html">&lt;p&gt;.&lt;a href=&quot;https://micro.blog/manton&quot;&gt;@manton&lt;/a&gt; And I also noticed that footnotes are broken on my main blog/list page: e.g. this reference here &lt;a href=&quot;https://blog.martin-haehnel.de/#fn:1&quot;&gt;blog.martin-haehnel.de&lt;/a&gt; is used in two different blog articles.&lt;/p&gt;
&lt;p&gt;I did some research and this forum post seems to suggest that there is no solution for goldmark based hugo: &lt;a href=&quot;https://discourse.gohugo.io/t/does-goldmark-support-namedfootnotes/26727&quot;&gt;discourse.gohugo.io/t/does-go...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;However I would imagine that pandoc can handle this. Can I somehow use pandoc to render markdown with micro.blog?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        .@manton And I also noticed that footnotes are broken on my main blog/list page: e.g. this reference here blog.martin-haehnel.de is used in two different blog articles. I did some research and this forum post seems to suggest that there is no solution for goldmark based hugo: discourse.gohugo.io/t/does-go... However I would imagine that pandoc can handle this. Can I somehow use pandoc to render markdown with micro.blog?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          .[@manton](https://m...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/13/manton-im-back.html" />
      <updated>2024-11-13T09:28:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/13/manton-im-back.html</id>
      <content type="html">&lt;p&gt;.&lt;a href=&quot;https://micro.blog/manton&quot;&gt;@manton&lt;/a&gt; I&#39;m back with a question about this again: &lt;a href=&quot;https://help.micro.blog/t/changing-the-blog-description/3250&quot;&gt;help.micro.blog/t/changin...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Would be possible to use the excerpt of a blog post instead of a static blog description/about me?&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of an example post that has an excerpt of the linked post, instead of the blog description. The referenced post is this one: [isfeeling.social/@matt/113...](https://isfeeling.social/@matt/113472646838404913)&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/464102b56d.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        .@manton I&#39;m back with a question about this again: help.micro.blog/t/changin... Would be possible to use the excerpt of a blog post instead of a static blog description/about me?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1084 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/12/dailydogo.html" />
      <updated>2024-11-12T19:16:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1084 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f15535acb9bf42108d2ca0705bcefe27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1084 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1083 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/11/dailydogo.html" />
      <updated>2024-11-11T20:05:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1083 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcbecacc94b44843b8e5f98e638fafca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1083 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1082 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/10/dailydogo.html" />
      <updated>2024-11-10T21:10:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1082 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac0dfc7499044e97bec929fba4f70d05.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1082 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1081 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/09/dailydogo.html" />
      <updated>2024-11-09T19:12:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1081 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b0334ebac294e438530e842a9fc1939.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1081 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1080 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/08/dailydogo.html" />
      <updated>2024-11-08T21:36:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1080 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fb11255cb39c4337b395520187aeb3db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1080 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Holy crap. Youtube...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/07/holy-crap-youtube.html" />
      <updated>2024-11-07T21:04:07Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/07/holy-crap-youtube.html</id>
      <content type="html">&lt;p&gt;Holy crap. Youtube Premium (Family) just got 10€ (or about 55%) more expensive in our region.&lt;/p&gt;
&lt;p&gt;Instead of 17,99€ they now want 27,99€.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Holy crap. Youtube Premium (Family) just got 10€ (or about 55%) more expensive in our region. Instead of 17,99€ they now want 27,99€.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1079 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/07/dailydogo.html" />
      <updated>2024-11-07T18:10:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1079 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f84f5be598d44b889e09fb11af1db9d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1079 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Any indie bookstores...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/07/any-indie-bookstores.html" />
      <updated>2024-11-07T07:28:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/07/any-indie-bookstores.html</id>
      <content type="html">&lt;p&gt;Any indie bookstores in #finland #suomi interested to partner with &lt;a href=&quot;https://libro.fm&quot;&gt;libro.fm&lt;/a&gt; (an audible alternative)? I&#39;d be a customer asap.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Any indie bookstores in #finland #suomi interested to partner with libro.fm (an audible alternative)? I&#39;d be a customer asap.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1078 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/06/dailydogo.html" />
      <updated>2024-11-06T17:20:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1078 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d5fcc272b098478c8349825f3cf3f644.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1078 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Don&#39;t Take Advice From Bad People, Even If It Is (Seemingly) Good



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html" />
      <updated>2024-11-06T16:57:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html</id>
      <content type="html">&lt;p&gt;There are many reasons not to take advice.&lt;/p&gt;
&lt;p&gt;Period.&lt;/p&gt;
&lt;p&gt;Life is incomprehensibly contextual. Still all of us find ourselves reaching for advice from time to time. It is important in those moments to recognize who you&#39;re taking advice from.&lt;/p&gt;
&lt;p&gt;Why is this important: Because advice is never only advice. Listening and following or even considering advice can be a way to lend credibility and power. It allows bad people to use that gained credibility to maybe say or do some other stuff with more authority than they are due otherwise.&lt;/p&gt;
&lt;p&gt;I see this sometimes in programming circles, where blowhards and hustle culture type people&#39;s opinions are shared and sometimes praised for telling truth to power. I say: resist the urge to engage with their arguments! Especially publicly. Seek kinder people. Seek people that have an interest in being more than just - to stay with the example - a 10x programmer who tells it like it is and doesn&#39;t give a shit about your softie feelings. Most principles of being a good worker or a good person or a person you want to be - or however you want to phrase this - are not available only through a funnel of selfish individualist assholes.&lt;/p&gt;
&lt;p&gt;Sometimes considering advice from bad people is unavoidable, because you are forced to see it. Resist the urge to engage with it. I speak from experience when I say that even a negative opinion expressed about what was shared - say in a thread in the work chat - will give credence to more than just the plain advice you&#39;re (seemingly) discussing. Try to share advice from good people instead.&lt;/p&gt;
&lt;p&gt;Now, there are at least two more things to consider here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;What even is a bad person?&lt;/li&gt;
&lt;li&gt;Why not try to understand their points and meet in the middle?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Being a bad person is a relative term. I&#39;m sure I am and have been a bad person in other people&#39;s eyes and so - likely - have you. I think it is also a term used to label people with bad values. What are bad values though? Again, it&#39;s somewhat relative. Or rather: It&#39;s a question of priority. For example: Do I value safety over opportunity? Do I value individual expression over piety? There are many values and possible orders (and stabilities of those orders, from unchanging to ethical situationalism). The whole of socially accepted values within a group are what we call morality. Accordingly, you can be more or less moral relative to the current status quo in a social group and its approach to values or what is deemed good and bad.&lt;/p&gt;
&lt;p&gt;All this is to say that as an active participant in the world you want to be a part of, that is, the imagined or real community of people you share values with, it is imperative to reflect those morals actively. Because every day you will be confronted with people and acts that need to be evaluated. Some will not pass muster. Others will make you reconsider, some will make you want to run away or start a fight.&lt;/p&gt;
&lt;p&gt;So what is a bad person? Spoken from this &amp;quot;position from nowhere&amp;quot;: it is a person who actively threatens the morality of the group(s) you&#39;re socially - by choice or not - belong to. People who try to renew or further a groups moral makeup have creds to do so. Bad actors just try to shake things up.&lt;/p&gt;
&lt;p&gt;But spoken from my actual position, instead of a theoretical non-position: It is a person who puts self interest over everything, individualism and personal gain, over the betterment of all, a person who actively fights the institutions of social democracy, a person who shits on worker&#39;s rights, a person who denies queer people or those of color their right to exist. But also people who, on a much smaller scale, think that kindness and empathy is for dumb softies. I say: Do not listen to these kinds of people even if their advice seems plausible.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; It comes from a bad place.&lt;/p&gt;
&lt;p&gt;The second question, about why not to meet in the middle and have calm discussions with bad people, is easier to answer: There simply is no need. The world of ideas is what should be discussed, not opinions. If you talk about other people they should be interested in positive change (i.e. make the world more aligned with what is good) and the discussion should be about empowerment and enablement. Only on the surface is it ever interesting to dissect a bad person&#39;s opinion and sift through the shit to find a couple of pieces of gold. Engaging in this kind of behavior is not good use of time.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There is plenty of good advice going around about the big things so here is my small piece: If you’re going to be on social media in the next weeks and months and years, block and mute freely rather than getting into spats and squabbles. Preserve your energy for the work. Keep your powder dry.
—&lt;a href=&quot;https://mas.to/@kissane/113436750164427878&quot;&gt;@kissane&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Makes sense at first. Because chances are, that a bad person is either giving disingenuous advice or drew the wrong conclusions or doesn&#39;t extend a conclusion far enough to end up in an inclusive, non harmful place. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;I will allow for one contextually valid exception here: If you read books, papers or otherwise more extensive and/or deep literature, I think it may be worth it to give the whole thing a little leeway. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Don&#39;t Take Advice From Bad People, Even If It Is (Seemingly) Good

        https://blog.martin-haehnel.de/2024/11/06/dont-take-advice.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Didn&#39;t work exactly...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/06/didnt-work-exactly.html" />
      <updated>2024-11-06T13:08:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/06/didnt-work-exactly.html</id>
      <content type="html">&lt;p&gt;Didn&#39;t work exactly as I wanted (cc: &lt;a href=&quot;https://micro.blog/matt@isfeeling.social&quot;&gt;@matt@isfeeling.social&lt;/a&gt; any chance for square image templates?), but I do love the Stellaris soundtrack to make my mind be interested in something else then just what&#39;s happening right now. May want to give it a try if you own the game. Lots and lots of great scifi music (6 hours +).&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A review made with quickreviews.app, telling you that I loved the Stellaris Soundtrack from 2016, by Andreas Waldetoft. Here&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/review.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Didn&#39;t work exactly as I wanted (cc: @matt@isfeeling.social any chance for square image templates?), but I do love the Stellaris soundtrack to make my mind be interested in something else then just what&#39;s happening right now. May want to give it a try if you own the game. Lots and lots of great scifi music (6 hours +).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1077 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/05/dailydogo.html" />
      <updated>2024-11-05T18:10:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1077 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9617d1509c764a6da683098c4d315f8c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1077 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          .[@manton](https://m...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/05/manton-is-there.html" />
      <updated>2024-11-05T17:31:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/05/manton-is-there.html</id>
      <content type="html">&lt;p&gt;.&lt;a href=&quot;https://micro.blog/manton&quot;&gt;@manton&lt;/a&gt; Is there a way to control what&#39;s in the &amp;quot;description&amp;quot;(?) of a blog post shared to mastodon? I mean that &amp;quot;Follow on micro blog&amp;quot; part.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3627ea9ad.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        .@manton Is there a way to control what&#39;s in the &amp;quot;description&amp;quot;(?) of a blog post shared to mastodon? I mean that &amp;quot;Follow on micro blog&amp;quot; part.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Latour



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/05/latour.html" />
      <updated>2024-11-05T17:06:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/05/latour.html</id>
      <content type="html">&lt;p&gt;It has been a weird, unproductive day at work. I had a hard time concentrating. I was thinking about how AI critique often makes a strong case for humans as opposed to non-human actors and I was wondering what somebody like Bruno Latour - an enormously important figure in my time as a student of history of technology and science and beyond - would say to that. Himself a staunch believer in the co-construction of scientific facts not only by humans but also by non-human actors.&lt;/p&gt;
&lt;p&gt;I found out that he died:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Latour died from pancreatic cancer on 9 October 2022, at the age of 75.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I hadn&#39;t even known. At one point I knew a lot about Latour&#39;s work. Closely reading it, applying to a field study of non-academic sociologists on twitter, way back when. That study failed to produce anything, really, but whatever: I spent almost five years positively swimming in &amp;quot;ANT&amp;quot; (actor-network theory) as my framework for describing my &amp;quot;subjects&amp;quot;.&lt;/p&gt;
&lt;p&gt;I once saw Latour speaking in the Humboldt University in Berlin. I had to search for it a little, but I believe it happened on 2016-05-12&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ol start=&quot;163&quot;&gt;
&lt;li&gt;Bruno Latour  † Philosoph, Paris  On a possible difference between earth and the globe (12. Mai 2016)&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;I asked him, since he tried to abstain from criticism and instead engage in rediscription of what was more less established (the process of making science), why he wasn&#39;t doing it for the humanities as well. And indeed he was a merciless critic of the epistemic practices and traditions in the humanities at large as well as in the social sciences. Whereas he would go out of his way redescribing the actual physical work that is done to produce a scientific fact, he would merely criticize the work in social fields and not look at how these fields construct knowledge. (And so on.)&lt;/p&gt;
&lt;p&gt;I still remember how, in the middle of commenting I suddenly got very excited - there I was, commenting in front of a large audience - on a specific issue that - let&#39;s be honest - had only tangentially to do with the main topic of his talk, but clearly showed that I had lived in this mans thoughts for many years. It was exciting. And the closest I ever came to talk to him.&lt;/p&gt;
&lt;p&gt;I also remember his answer. I put my question in a way that asked for patience with the humanists: As &amp;quot;subjects&amp;quot; of an academic anthropology, why would we take what humanists do as the only expression of the humanists process? Why not take the time to look? Latour answered, that he felt, that he had given enough time to the humanists and related my comment to his then new project modes of existence. And that was it.&lt;/p&gt;
&lt;p&gt;I still remember that there could&#39;ve been a little more said and done. And I&#39;m also sure that the a - possibly new? - field of an antropology of the humanities would be interesting - has anybody tried to do field work in this way? I&#39;m sooo out of academia... - but I also remember how I somehow &lt;em&gt;knew&lt;/em&gt; that this was possibly my only chance to actually make that small, human connection to a person that had opened up the world for me. I&#39;ll always be grateful for his amazing ability to make me rethink everything and get excited about the process of doing the hard epistemic groundwork in the hard way, because that&#39;s how you end up with new insights.&lt;/p&gt;
&lt;p&gt;I think that Latour was... &lt;em&gt;is&lt;/em&gt; so important to me is because &lt;em&gt;I&lt;/em&gt; found him. During my studies we had read &lt;a href=&quot;http://www.bruno-latour.fr/node/384&quot;&gt;the Berlin Key essay&lt;/a&gt;, but it was &lt;em&gt;me&lt;/em&gt; who took on the ANT head first, by myself, out of sheer intrinsic interest. And I guess because &lt;a href=&quot;http://www.bruno-latour.fr/node/70.html&quot;&gt;Reassembling the Social&lt;/a&gt; had recently become available for purchase and was a perfect entry point for me.&lt;/p&gt;
&lt;p&gt;Thank you Bruno Latour.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;according to &lt;a href=&quot;https://www.mosse-lectures.de/en/guests/&quot;&gt;this&lt;/a&gt; (see entry 163). &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/latour.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Latour

        https://blog.martin-haehnel.de/2024/11/05/latour.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          _The following is a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html" />
      <updated>2024-11-05T11:12:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html</id>
      <content type="html">&lt;p&gt;&lt;em&gt;The following is a rant fed and sustained by worries about the hollowing out of workers rights and democracy as a whole.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&#39;s not important at all, but it&#39;s interesting to note that Apple has made another recent ad that&#39;s as bad as the hydraulic press one where they destroyed all the instruments. In this one, it shows their AI tool being used by someone who didn&#39;t do their work to fake their way through a meeting.  Apple ads used to always show their users as experts or creative thinkers. Now they&#39;re workplace liars. &lt;a href=&quot;https://www.youtube.com/watch?v=BK8bnkcT0Ng&quot;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;a href=&quot;https://www.threads.net/@anildash/post/DB-Zq48MCCf&quot;&gt;Anil Dash on Threads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And (this one&#39;s a quote Post, I have embeded the quoted post, so it&#39;s easier to read here):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Been trying to explain for years that all of this — the hyper-investment in AI, the “gig economy”, the constant layoffs and attacks on workers rights under the guise of attacking DEI — it’s all a pretense to undermine labor. It’s the single, unifying principle behind all of it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;RE:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Perplexity CEO offers to replace striking NYT staff with AI &lt;a href=&quot;https://tcrn.ch/4f3cdyh&quot;&gt;tcrn.ch/4f3cdyh&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://techcrunch.com/2024/11/04/perplexity-ceo-offers-ai-companys-services-to-replace-striking-nyt-staff/&quot;&gt;techcrunch.com/2024/11/0...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;a href=&quot;https://www.threads.net/@anildash/post/DB94aVyPaA1&quot;&gt;Anil Dash on Threads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s hard not to see the first post as another example of undermining labor. It&#39;s not the expert workers that matter anymore. In the eyes of companies, we&#39;re are supposed to be consumers. But what really eats at me with the recent Apple Intelligence ads is that they are funny to me. They are well acted and written and could almost be comments on the idiotic and soul-crushing AI hype, if it weren&#39;t for the appalling twist, where AI saves the day.&lt;/p&gt;
&lt;p&gt;I mean, look at this ad:&lt;/p&gt;
&lt;div id=&quot;A0BXZhdDqZM&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/A0BXZhdDqZM&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;Isn&#39;t this actually super sad? Instead of resolving this situation together - &amp;quot;Honey, I&#39;m so sorry, but I forgot your birthday...&amp;quot; (You gotta face the fucking music!) - AI is used to LIE TO YOUR PARTNER. And afterwards the protagonist is portrayed to feel good about themselves. What a genius!&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;And AI is not used here to enable experts to do better work, which is the only use case for AI that makes even a modicum of sense. Instead it is used to show us how inept we are and how we need AI to feel like geniuses (because we are not).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This Apple Intelligence ad where an executive presents a document in a meeting that they haven’t read based on AI summarized key points reminds me of the Google ad where a dad asked an AI to write a letter on behalf of his kid to their favorite artist.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;These are both examples where it provides negative value for AI to perform the task instead of a human. I don’t want coworkers regurgitating ChatGPT summaries of documents instead of sharing their perspectives.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=BK8bnkcT0Ng&quot;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;— &lt;a href=&quot;https://mas.to/@carnage4life/113429498156982872&quot;&gt;Dare Obasanjo on Mastodon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I would like to claim that things are not so dire in Europe. Maybe there isn&#39;t anybody trying to replace striking workers with AI agents (yet), but right-wing governments destroying social democratic foundations exist here, too.&lt;/p&gt;
&lt;p&gt;As &lt;a href=&quot;https://www.theguardian.com/commentisfree/2024/nov/04/finland-progressive-rightwing-government&quot;&gt;a fellow immigrant to Finland sumarizes in the Guardian&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I feel a sense of unease as Finland’s prime minister Petteri Orpo’s rightwing coalition government has set about slashing welfare and capping public sector pay. Even on two teachers’ salaries my partner and I have felt the sting of inflation as goods have increased by 20% in three years. With beer now costing €8 or more in a city centre pub, going out becomes an ever rarer expense.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Those worse off than us face food scarcity. A survey conducted by the National Institute for Health and Welfare found 25% of students struggling to afford food, while reductions in housing benefit mean tenants are being forced to move or absorb the shortfall in rent payments. There are concerns that many unemployed young people could become homeless.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Healthcare is faring little better. [...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The current government, formed by Orpo’s National Coalition party (NCP) last year in coalition with the far-right Finns party, the Swedish People’s party of Finland and the Christian Democrats, has been described as “the most rightwing” Finland has ever seen – a position it appears to relish.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I do not want that mix of hyper-capitalist tech-bro authoritarianism that is so en vogue across the pond with about half of the people over there (it seems). Quite the opposite, I do believe that regulated markets and organized workers and a strong social net leads to a strong middle class which in turn leads to prosperity and more equality for all.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Oliver Reichenstein had &lt;a href=&quot;https://mastodon.social/@reichenstein/113429691625220192&quot;&gt;a thread about this on Mastodon&lt;/a&gt; echoing my sentiment (although he didn&#39;t think these ads were well made). &lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        The following is a rant fed and sustained by worries about the hollowing out of workers rights and democracy as a whole. It&#39;s not important at all, but it&#39;s interesting to note that Apple has made another recent ad that&#39;s as bad as the hydraulic press one where they destroyed all the instruments. In this one, it shows their AI tool being used by someone who didn&#39;t do their work to fake their way through a meeting. Apple ads used to always show their users as experts or creative thinkers. Now they&#39;re workplace liars. www.youtube.com/watch — Anil Dash on Threads And (this one&#39;s a quote Post, I have embeded the quoted post, so it&#39;s easier to read here): Been trying to explain for years that all of this — the hyper-investment in AI, the “gig economy”, the constant layoffs and attacks on workers rights under the guise of attacking DEI — it’s all a pretense to undermine labor. It’s the single, unifying principle behind all of it. RE: Perplexity CEO offers to replace striking NYT staff with AI tcrn.ch/4f3cdyh techcrunch.com/2024/11/0... — Anil Dash on Threads It&#39;s hard not to see the first post as another example of undermining labor. It&#39;s not the expert workers that matter anymore. In the eyes of companies, we&#39;re are supposed to be consumers. But what really eats at me with the recent Apple Intelligence ads is that they are funny to me. They are well acted and written and could almost be comments on the idiotic and soul-crushing AI hype, if it weren&#39;t for the appalling twist, where AI saves the day. I mean, look at this ad: Isn&#39;t this actually super sad? Instead of resolving this situation together - &amp;quot;Honey, I&#39;m so sorry, but I forgot your birthday...&amp;quot; (You gotta face the fucking music!) - AI is used to LIE TO YOUR PARTNER. And afterwards the protagonist is portrayed to feel good about themselves. What a genius![1] And AI is not used here to enable experts to do better work, which is the only use case for AI that makes even a modicum of sense. Instead it is used to show us how inept we are and how we need AI to feel like geniuses (because we are not). This Apple Intelligence ad where an executive presents a document in a meeting that they haven’t read based on AI summarized key points reminds me of the Google ad where a dad asked an AI to write a letter on behalf of his kid to their favorite artist. These are both examples where it provides negative value for AI to perform the task instead of a human. I don’t want coworkers regurgitating ChatGPT summaries of documents instead of sharing their perspectives. www.youtube.com/watch — Dare Obasanjo on Mastodon I would like to claim that things are not so dire in Europe. Maybe there isn&#39;t anybody trying to replace striking workers with AI agents (yet), but right-wing governments destroying social democratic foundations exist here, too. As a fellow immigrant to Finland sumarizes in the Guardian: I feel a sense of unease as Finland’s prime minister Petteri Orpo’s rightwing coalition government has set about slashing welfare and capping public sector pay. Even on two teachers’ salaries my partner and I have felt the sting of inflation as goods have increased by 20% in three years. With beer now costing €8 or more in a city centre pub, going out becomes an ever rarer expense. Those worse off than us face food scarcity. A survey conducted by the National Institute for Health and Welfare found 25% of students struggling to afford food, while reductions in housing benefit mean tenants are being forced to move or absorb the shortfall in rent payments. There are concerns that many unemployed young people could become homeless. Healthcare is faring little better. [...] The current government, formed by Orpo’s National Coalition party (NCP) last year in coalition with the far-right Finns party, the Swedish People’s party of Finland and the Christian Democrats, has been described as “the most rightwing” Finland has ever seen – a position it appears to relish. I do not want that mix of hyper-capitalist tech-bro authoritarianism that is so en vogue across the pond with about half of the people over there (it seems). Quite the opposite, I do believe that regulated markets and organized workers and a strong social net leads to a strong middle class which in turn leads to prosperity and more equality for all. Oliver Reichenstein had a thread about this on Mastodon echoing my sentiment (although he didn&#39;t think these ads were well made). ↩︎

        https://blog.martin-haehnel.de/2024/11/05/two-posts-from.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1076 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/04/dailydogo.html" />
      <updated>2024-11-04T18:23:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1076 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1eeb5873735543f588ac72b251a5bb08.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1076 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;Maintenance Romanticsm&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/04/hub-maintenance-romanticsm.html" />
      <updated>2024-11-04T13:49:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/04/hub-maintenance-romanticsm.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-11-04 - Created this note&lt;/li&gt;
&lt;li&gt;2025-10-18 - Added the &amp;quot;Maintaining The Blog&amp;quot; section&lt;/li&gt;
&lt;li&gt;2026-01-21 - Added a link to the Maintenance Culture Article&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;note&quot;&gt;Note&lt;/h2&gt;
&lt;p&gt;Being a lighthouse keeper or an archivist or a programmer working on a legacy project. If find there is a certain amount of romanticism attached to being a maintainer of things. Jobs like this are often somewhat unthankful and invisible, but nonetheless important. They can also be incredibly rewarding. Take these snippets of an article on the deep sea cable industry:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Shipboard life lends itself to a strong sense of camaraderie, with periods of collaboration under pressure followed by long stretches — en route to a worksite or waiting for storms to pass — without much to do but hang out.
— &lt;a href=&quot;https://www.theverge.com/c/24070570/internet-cables-undersea-deep-repair-ships&quot;&gt;The Invisible Seafaring Industry That Keeps the Internet Afloat&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;maintenance-culture&quot;&gt;Maintenance Culture&lt;/h3&gt;
&lt;p&gt;The concept of maintenance as a value system and way of life is described in &lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/maintenance-culture-and-honor-culture/&quot;&gt;Maintenance Culture And Honor Culture&lt;/a&gt; (with a couple of excerpts from a blog post I&#39;ve enjoyed recently).&lt;/p&gt;
&lt;h3 id=&quot;maintaining-the-blog&quot;&gt;Maintaining The Blog&lt;/h3&gt;
&lt;p&gt;I think maintaining this blog is also a case of maintenance romanticism as doing continuous work on it, improving it, reworking older posts like this one, feels cozy to me. Nobody thanks me for this work either (except my future self) and it is also somewhat invisible - although there is a certain way in which I try to surface the maintenance work done (an interesting tension). Examples of maintenance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/see-whats-changed-through-new-recently-changed-feature-s/&quot;&gt;See What&amp;apos;s Changed Through New Recently Changed &amp;quot;Feature&amp;lpar;s&amp;rpar;&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;Maintenance Romanticsm&quot;

        https://blog.martin-haehnel.de/2024/11/04/hub-maintenance-romanticsm.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          One thing I do enjoy...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/04/one-thing-i.html" />
      <updated>2024-11-04T09:01:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/04/one-thing-i.html</id>
      <content type="html">&lt;p&gt;One thing I do enjoy a lot is text to speech and I think that this is an example where statistical models have helped to make TTS more natural sounding and therefore more useful.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong: The AI voices do get intonation as well as decisions of what to read out loud and how (&amp;quot;Roman 11 Jinping&amp;quot; instead of Xi Jinping) wrong all the time, but it is still a boon in my book, because I wouldn&#39;t be able to consume some of the longer form content without it.&lt;/p&gt;
&lt;p&gt;But with TTS I can listen to interesting articles while walking the dog, cooking or doing rote tasks at work. That&#39;s pretty great.&lt;/p&gt;
&lt;p&gt;When it comes to longer form (semi-)academic articles, I have noticed it can work as a &amp;quot;first pass&amp;quot;. I frequently have to re-read passages before I would claim I have consumed that content. Nonetheless: it&#39;s a great supplemental way to consume content while doing something else.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        One thing I do enjoy a lot is text to speech and I think that this is an example where statistical models have helped to make TTS more natural sounding and therefore more useful. Don&#39;t get me wrong: The AI voices do get intonation as well as decisions of what to read out loud and how (&amp;quot;Roman 11 Jinping&amp;quot; instead of Xi Jinping) wrong all the time, but it is still a boon in my book, because I wouldn&#39;t be able to consume some of the longer form content without it. But with TTS I can listen to interesting articles while walking the dog, cooking or doing rote tasks at work. That&#39;s pretty great. When it comes to longer form (semi-)academic articles, I have noticed it can work as a &amp;quot;first pass&amp;quot;. I frequently have to re-read passages before I would claim I have consumed that content. Nonetheless: it&#39;s a great supplemental way to consume content while doing something else.

        https://blog.martin-haehnel.de/2024/11/04/one-thing-i.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1075 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/03/dailydogo.html" />
      <updated>2024-11-03T17:51:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1075 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ece7e29bc5ed4c40a99d45a876d5134d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1075 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1074 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/02/dailydogo.html" />
      <updated>2024-11-02T17:51:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1074 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecba16bba6e6475398470555da58cf4a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1074 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1073 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/11/01/dailydogo.html" />
      <updated>2024-11-01T20:19:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/11/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1073 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/14e05290f04c4a47b9ac2a149e1d5f01.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1073 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1072 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/31/dailydogo.html" />
      <updated>2024-10-31T19:10:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1072 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/61af99957ec54da6999737d773d018d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1072 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I won&#39;t lie....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/31/i-wont-lie.html" />
      <updated>2024-10-31T13:50:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/31/i-wont-lie.html</id>
      <content type="html">&lt;p&gt;I won&#39;t lie. Switching back from #omnivore to #readwise has made me consume more stuff in the last few days. Good, feature-rich apps make such a big difference.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stephango.com/quality-software&quot;&gt;Quality software deserves your hard‑earned cash&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I won&#39;t lie. Switching back from #omnivore to #readwise has made me consume more stuff in the last few days. Good, feature-rich apps make such a big difference. Quality software deserves your hard‑earned cash</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Paradigms Are Strategic Tools



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html" />
      <updated>2024-10-31T10:51:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-11-14 - Fixed a typo&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;A great, if very long read (at least as far as recommendations in blog posts are concerned): &lt;a href=&quot;https://donellameadows.org/archives/leverage-points-places-to-intervene-in-a-system/&quot;&gt;Donella Meadows - Leverage Points: Places to Intervene in a System&lt;/a&gt;. This is an essay about how to go about effectively changing a system  - like a society - from a systems analysis perspective. It presents a list of leverage points (&amp;quot;These are places within a complex system (a corporation, an economy, a living body, a city, an ecosystem) where a small shift in one thing can produce big changes in everything.&amp;quot;) and explains their ins and outs. Here&#39;s the list:&lt;/p&gt;
&lt;blockquote&gt;
PLACES TO INTERVENE IN A SYSTEM
&lt;p&gt;(in increasing order of effectiveness)&lt;/p&gt;
&lt;ol reversed=&quot;&quot;&gt;
  &lt;li&gt;Constants, parameters, numbers (such as subsidies, taxes, standards).&lt;/li&gt;
  &lt;li&gt;The sizes of buffers and other stabilizing stocks, relative to their flows.&lt;/li&gt;
  &lt;li&gt;The structure of material stocks and flows (such as transport networks, population age structures).&lt;/li&gt;
  &lt;li&gt;The lengths of delays, relative to the rate of system change.&lt;/li&gt;
  &lt;li&gt;The strength of negative feedback loops, relative to the impacts they are trying to correct against.&lt;/li&gt;
  &lt;li&gt;The gain around driving positive feedback loops.&lt;/li&gt;
  &lt;li&gt;The structure of information flows (who does and does not have access to information).&lt;/li&gt;
  &lt;li&gt;The rules of the system (such as incentives, punishments, constraints).&lt;/li&gt;
  &lt;li&gt;The power to add, change, evolve, or self-organize system structure.&lt;/li&gt;
  &lt;li&gt;The goals of the system.&lt;/li&gt;
  &lt;li&gt;The mindset or paradigm out of which the system — its goals, structure, rules, delays, parameters — arises.&lt;/li&gt;
  &lt;li&gt;The power to transcend paradigms.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;This list is a great starting point to think about systems change, because it includes lots of examples, which makes us understand the terms and the order better.&lt;/p&gt;
&lt;p&gt;What I liked most about it:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It renewed my interest in paradigms and how to play with them strategically.&lt;/strong&gt; Realizing, once more, that paradigms are not truth, but epistemic tools seems evermore important. It also gels nicely with what I yesterday remarked about &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html&quot;&gt;myth making&lt;/a&gt;: Myth making might be a good name for the practice of feeling in the dark, while we do not know how the new paradigm should look like and therefore have difficulties in describing it fully. At the same time I could see the fatalistic turn as an expression of a new - pessimistic - paradigm. However I&#39;m unsure if its potential is bigger in describing why things can&#39;t and won&#39;t work and we just have to endure than in realizing there is a way out - because the fatalistic turn is an expression of absurdity, in the end. Here&#39;s what Donella had to say about changing paradigms:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;So how do you change paradigms? Thomas Kuhn, who wrote the seminal book about the great paradigm shifts of science,7 has a lot to say about that. In a nutshell, you keep pointing at the anomalies and failures in the old paradigm, you keep coming yourself, and loudly and with assurance from the new one, you insert people with the new paradigm in places of public visibility and power. You don’t waste time with reactionaries; rather you work with active change agents and with the vast middle ground of people who are open-minded.&lt;/p&gt;
&lt;p&gt;Systems folks would say you change paradigms by modeling a system, which takes you outside the system and forces you to see it whole. We say that because our own paradigms have been changed that way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As somebody who has spend an absurd amount of time with Popper, Kuhn, Lakatos, Mannheim, Latour and so many more that I have since forgotten about (or didn&#39;t make the effort to name here), as a student of history of technology and science I felt an echo occurring within me when reading these words: That of the historically inclined person&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; recognizing that my approach to the world in recent years - after having to, but kinda also wanting to, switch fields (from humanities to programming) was missing a crucial part: I was not doing theory enough!&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Although my main interest was not in telling stories or reciting facts. My interest was always more &amp;quot;architectural&amp;quot;: How historically interesting systems change over time and what patterns, and generic processes and historically stable &amp;quot;truths&amp;quot; can be extracted from that. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        Paradigms Are Strategic Tools

        https://blog.martin-haehnel.de/2024/10/31/paradigms-are-strategic.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          An Updated Manifest Destiny - Or How Myth Making Might Intentionally Change The World After All (Comment on Andrew Dana Hudson&#39;s &quot;Space is Dead. Why Do We Keep Writing About It?&quot;)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html" />
      <updated>2024-10-30T10:22:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html</id>
      <content type="html">&lt;p&gt;Loved this one from Andrew Dana Hudson (who is on Mastodon: @AndrewDanaHudson@wandering.shop): &lt;a href=&quot;https://longnow.org/ideas/space-dead/&quot;&gt;Space is Dead. Why Do We Keep Writing About It?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can still dream of space. But we ought to do it not turning away from what we need to go through - system change - before we go beyond. And system change - if at all possible (&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;I do have my doubts&lt;/a&gt;) - start with myth making.&lt;/p&gt;
&lt;p&gt;I always get so emotional thinking, dreaming about space exploration. I do have a hard time not thinking about this in &amp;quot;manifest destiny for our species&amp;quot; terms. And maybe it&#39;s still the case. But we need to incorporate the here and now into it, namely the climatecrisis/&lt;a href=&quot;https://www.weforum.org/agenda/2023/03/polycrisis-adam-tooze-historian-explains/&quot;&gt;polycrisis&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The moon landing happened because capitalism and American empire actually had a rival. These forces had to prove they could outrace, outplan, and outspend communism and Soviet empire. It was probably the biggest PR campaign of all time, if you don’t count our bloated military. But such grand flexes are not necessary in our current capitalist realist status quo. When there’s no alternative, who are you trying to impress?
I do think we can go to Mars, and beyond, if we want to. But we’d have to decide to do so, collectively and democratically, probably not even as a nation-state but as a species. We’d have to put aside capitalist and nationalist competition. We’d have to take up more pressing moonshots first — decarbonization and climate repair — and then keep that momentum of big public spending flowing.
So if you want to write a story about space, that’s where I think it should start. How do we get through the bottleneck of climate collapse and polycrisis, through to a better system that offers more expansive possibilities?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;P.S.: There is also a companion short story: &lt;a href=&quot;https://longnow.org/ideas/the-weather-out-there/&quot;&gt;The Weather Out There&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        An Updated Manifest Destiny - Or How Myth Making Might Intentionally Change The World After All (Comment on Andrew Dana Hudson&#39;s &quot;Space is Dead. Why Do We Keep Writing About It?&quot;)

        https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1071 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/29/dailydogo.html" />
      <updated>2024-10-29T18:36:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1071 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b85051aa2c2c4daaab665fb4aba58569.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1071 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #omnivore is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/29/omnivore-is-shutting.html" />
      <updated>2024-10-29T15:45:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/29/omnivore-is-shutting.html</id>
      <content type="html">&lt;p&gt;#omnivore is &lt;a href=&quot;https://blog.omnivore.app/p/omnivore-is-joining-elevenlabs&quot;&gt;shutting down&lt;/a&gt; (kinda, the sources are available and you could in theory host it yourself, I think, but who wants to do that...)&lt;/p&gt;
&lt;p&gt;So... back to #readwise? I guess...&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #omnivore is shutting down (kinda, the sources are available and you could in theory host it yourself, I think, but who wants to do that...) So... back to #readwise? I guess...</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Another thing...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/29/another-thing-related.html" />
      <updated>2024-10-29T08:37:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/29/another-thing-related.html</id>
      <content type="html">&lt;p&gt;Another thing related to what I said about &lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/25/as-soon-as.html&quot;&gt;loosing interest as soon as something has taken VC money&lt;/a&gt;: If the pricing is not immediately obvious I also loose all interest. I&#39;m rarely going to hunt for prices. If I do, I am more often than not disappointed. Case in point:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://godspeedapp.com&quot;&gt;godspeedapp.com&lt;/a&gt; I had to email them to learn about their one-time purchase option. And to nobody&#39;s surprise it was too expensive (I think it was like 200$ for two years of updates?).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Another thing related to what I said about loosing interest as soon as something has taken VC money: If the pricing is not immediately obvious I also loose all interest. I&#39;m rarely going to hunt for prices. If I do, I am more often than not disappointed. Case in point: godspeedapp.com I had to email them to learn about their one-time purchase option. And to nobody&#39;s surprise it was too expensive (I think it was like 200$ for two years of updates?).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1070 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/28/dailydogo.html" />
      <updated>2024-10-28T18:07:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1070 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b7968547b3b4834af5c42b733b9db6f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1070 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Not gonna lie: In...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/28/not-gonna-lie.html" />
      <updated>2024-10-28T09:18:07Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/28/not-gonna-lie.html</id>
      <content type="html">&lt;p&gt;Not gonna lie: In comparison to #node and #php the package and version management of python is pretty janky.&lt;/p&gt;
&lt;p&gt;pipenv/pyenv makes it bearable, but it&#39;s still kind of a mess.&lt;/p&gt;
&lt;p&gt;P.S: PHP&#39;s version management is bad, too. &lt;a href=&quot;https://github.com/phpbrew/phpbrew&quot;&gt;PHPBrew&lt;/a&gt; is the best option. But since I use &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/06/laravel-herd/&quot;&gt;Herd&lt;/a&gt;/use a Container, it doesn&#39;t matter as much. &lt;a href=&quot;https://getcomposer.org/&quot;&gt;Composer&lt;/a&gt; is great though.&lt;/p&gt;
&lt;p&gt;P.P.S: You can get lost in the weeds with JS/TS package management, but just using npm or (my fav) &lt;a href=&quot;https://pnpm.js.org/&quot;&gt;pnpm&lt;/a&gt; and &lt;a href=&quot;https://github.com/nvm-sh/nvm&quot;&gt;nvm&lt;/a&gt; for version management is rock solid.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Not gonna lie: In comparison to #node and #php the package and version management of python is pretty janky. pipenv/pyenv makes it bearable, but it&#39;s still kind of a mess. P.S: PHP&#39;s version management is bad, too. PHPBrew is the best option. But since I use Herd/use a Container, it doesn&#39;t matter as much. Composer is great though. P.P.S: You can get lost in the weeds with JS/TS package management, but just using npm or (my fav) pnpm and nvm for version management is rock solid.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1069 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/27/dailydogo.html" />
      <updated>2024-10-27T19:45:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1069 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/33126b5e502f46a791fc36e209941e60.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1069 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1068 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/26/dailydogo.html" />
      <updated>2024-10-26T18:39:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1068 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d43e7099146540d6a7b2a8e542bbe136.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1068 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1067 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/25/dailydogo.html" />
      <updated>2024-10-25T18:50:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1067 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3bdf570344c444d38b01822e5b30f794.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1067 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Didn&#39;t play...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/25/didnt-play-factorio.html" />
      <updated>2024-10-25T17:26:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/25/didnt-play-factorio.html</id>
      <content type="html">&lt;p&gt;Didn&#39;t play #factorio in a while, it seems.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;CleanShot 2024-10-25 at 20.25.25@2x.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-25-at-20.25.252x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Didn&#39;t play #factorio in a while, it seems.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          One thing I have...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/25/one-thing-i.html" />
      <updated>2024-10-25T10:50:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/25/one-thing-i.html</id>
      <content type="html">&lt;p&gt;One thing I have learned about BIG displays (I have a 42,5&amp;quot; one from LG): I like it about 60% of the time, but I don&#39;t need it. Some of the time it is overwhelming and the upper 25% are not really used. I have display some widgets there, sometimes a window, but most often only the widgets.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        One thing I have learned about BIG displays (I have a 42,5&amp;quot; one from LG): I like it about 60% of the time, but I don&#39;t need it. Some of the time it is overwhelming and the upper 25% are not really used. I have display some widgets there, sometimes a window, but most often only the widgets.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Can&#39;t wait to play...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/25/cant-wait-to.html" />
      <updated>2024-10-25T10:26:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/25/cant-wait-to.html</id>
      <content type="html">&lt;p&gt;Can&#39;t wait to play the new Factorio DLC as soon as my work day is over!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Can&#39;t wait to play the new Factorio DLC as soon as my work day is over!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          As soon as I learn...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/25/as-soon-as.html" />
      <updated>2024-10-25T09:38:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/25/as-soon-as.html</id>
      <content type="html">&lt;p&gt;As soon as I learn that something has taken VC money, I immediately loose all interest in whatever app/service it is. I might use it as long as it is free, but I would never build my digital life around such a product. Lessons learned.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        As soon as I learn that something has taken VC money, I immediately loose all interest in whatever app/service it is. I might use it as long as it is free, but I would never build my digital life around such a product. Lessons learned.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1066 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/24/dailydogo.html" />
      <updated>2024-10-24T18:44:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1066 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69279473a0a440ceb96f14c0d05becdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1066 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A streamer/Youtuber...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/23/a-streameryoutuber-i.html" />
      <updated>2024-10-23T20:25:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/23/a-streameryoutuber-i.html</id>
      <content type="html">&lt;p&gt;A streamer/Youtuber I watch for cozy vibes made a video about a very upsetting topic that leads almost directly to very upsetting further comments and posts by other people about the same topic. And I can&#39;t stop clicking around and hate-consuming that crap. It isn&#39;t even that they are wrong necessarily, but I really didn&#39;t want to be so upset at the end of the day... (This post is an attempt to make it stop)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A streamer/Youtuber I watch for cozy vibes made a video about a very upsetting topic that leads almost directly to very upsetting further comments and posts by other people about the same topic. And I can&#39;t stop clicking around and hate-consuming that crap. It isn&#39;t even that they are wrong necessarily, but I really didn&#39;t want to be so upset at the end of the day... (This post is an attempt to make it stop)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1065 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/23/dailydogo.html" />
      <updated>2024-10-23T19:00:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1065 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6a5294a099b64205bbf9926c3f33bc10.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1065 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1064 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/22/dailydogo.html" />
      <updated>2024-10-22T17:10:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1064 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9f38f7633ffc4f47b881851c5bd4d6f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1064 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Honestly? I didn&#39;t...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/22/honestly-i-didnt.html" />
      <updated>2024-10-22T16:17:49Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/22/honestly-i-didnt.html</id>
      <content type="html">&lt;p&gt;Honestly? I didn&#39;t mind that the iPad mini wasn&#39;t updated more than it was. Sure I would have liked a magic keyboard (or some such) for it, but otherwise it&#39;s a pretty nice device already.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Honestly? I didn&#39;t mind that the iPad mini wasn&#39;t updated more than it was. Sure I would have liked a magic keyboard (or some such) for it, but otherwise it&#39;s a pretty nice device already.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1063 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/21/dailydogo.html" />
      <updated>2024-10-21T20:00:55Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1063 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9036f014df9b4aa585ba9eec54098e41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1063 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          TIL: Using strict...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/21/til-using-strict.html" />
      <updated>2024-10-21T12:30:19Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/21/til-using-strict.html</id>
      <content type="html">&lt;p&gt;TIL: Using strict intervals (e.g. every week) to water your plants instead of humidity of the soil. Is akin to using volume instead of gram measurements in cooking. It&#39;s imprecise and misleading.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        TIL: Using strict intervals (e.g. every week) to water your plants instead of humidity of the soil. Is akin to using volume instead of gram measurements in cooking. It&#39;s imprecise and misleading.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Back at work after a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/21/back-at-work.html" />
      <updated>2024-10-21T06:06:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/21/back-at-work.html</id>
      <content type="html">&lt;p&gt;Back at work after a pretty bad flu that lasted the whole week. Still have some snot and some coughs left.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Back at work after a pretty bad flu that lasted the whole week. Still have some snot and some coughs left.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1062 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/20/dailydogo.html" />
      <updated>2024-10-20T17:16:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1062 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4c2324e3642482f871d93b8c1dd96eb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1062 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1061 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/19/dailydogo.html" />
      <updated>2024-10-19T17:03:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1061 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1d2e89fbc4174a7daf613e6ae7dcf967.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1061 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1060 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/18/dailydogo.html" />
      <updated>2024-10-18T18:10:19Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1060 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bfc7a624062f48f183bd0ee20df46cf7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1060 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1059 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/17/dailydogo.html" />
      <updated>2024-10-17T18:01:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1059 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/18997fae628b4ff28dfb7bc1142dec8e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1059 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1058 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/16/dailydogo.html" />
      <updated>2024-10-16T18:29:49Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1058 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d72339336efd4643a6c80e05585d6f12.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1058 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1057 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/15/dailydogo.html" />
      <updated>2024-10-15T18:23:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1057 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7b7803e446e84c079adaca8a4f6d49b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1057 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1056 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/14/dailydogo.html" />
      <updated>2024-10-14T20:12:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1056 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c67cbb5c146543c4bbfa751a7034a416.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1056 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1055 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/13/dailydogo.html" />
      <updated>2024-10-13T19:20:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1055 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9705aa10afaf4222b3c21b41d2d5b272.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1055 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Even though I use it...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/13/even-though-i.html" />
      <updated>2024-10-13T00:20:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/13/even-though-i.html</id>
      <content type="html">&lt;p&gt;Even though I use it at times - we are kinda meant to at work; &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/11/the-way-we.html&quot;&gt;see also my latest stance vis-a-vis this topic&lt;/a&gt; - reading about AI and the gushing nonsensical optimism around it makes me so sad. I guess this is my stop? Is this where I&#39;m supposed to be getting off this technological enthusiast train?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Even though I use it at times - we are kinda meant to at work; see also my latest stance vis-a-vis this topic - reading about AI and the gushing nonsensical optimism around it makes me so sad. I guess this is my stop? Is this where I&#39;m supposed to be getting off this technological enthusiast train?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1054 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/12/dailydogo.html" />
      <updated>2024-10-12T19:35:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1054 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cf9d00443c254c6484d6127115ab3545.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1054 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1053 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/11/dailydogo.html" />
      <updated>2024-10-11T17:00:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1053 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ffbf7648d6f5451ba4b6eb8e88ced48f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1053 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1052 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/10/dailydogo.html" />
      <updated>2024-10-10T17:10:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1052 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1308b1b65f124a86bb18a36f46461b98.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1052 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (chuckles) I&#39;m in...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/10/chuckles-im-in.html" />
      <updated>2024-10-10T15:29:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/10/chuckles-im-in.html</id>
      <content type="html">&lt;p&gt;(chuckles) I&#39;m in danger.&lt;/p&gt;
&lt;p&gt;(I&#39;m not. We are save here. But it sounds impressive.)&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-10-at-18.26.502x.png&amp;quot; alt=&amp;quot;A screenshot of a &amp;quot;severe wind warning&amp;quot;, by way of the apple weather app, in the northorn bay of bothnia (near Oulu, where I live) tomorrow (October 11). It says under severity: &amp;quot;Significant threat to life or property&amp;quot;.&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;437&amp;quot; /&amp;gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (chuckles) I&#39;m in danger. (I&#39;m not. We are save here. But it sounds impressive.) &amp;lt;img src=&amp;quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-10-10-at-18.26.502x.png&amp;quot; alt=&amp;quot;A screenshot of a &amp;quot;severe wind warning&amp;quot;, by way of the apple weather app, in the northorn bay of bothnia (near Oulu, where I live) tomorrow (October 11). It says under severity: &amp;quot;Significant threat to life or property&amp;quot;.&amp;quot; width=&amp;quot;600&amp;quot; height=&amp;quot;437&amp;quot; /&amp;gt;</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I now own an anker...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/10/i-now-own.html" />
      <updated>2024-10-10T07:26:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/10/i-now-own.html</id>
      <content type="html">&lt;p&gt;I now own an anker 3-in-1 charger thingy and it&#39;s the first time in a long time that I have a &amp;quot;dock&amp;quot; for my phone. Love it! I love having a dedicated location for the phone (and the watch and my air pods…). Keeps the desk clean - or at least makes it easier to clean. And wireless charging is great, too. 5/5 would recommend.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I now own an anker 3-in-1 charger thingy and it&#39;s the first time in a long time that I have a &amp;quot;dock&amp;quot; for my phone. Love it! I love having a dedicated location for the phone (and the watch and my air pods…). Keeps the desk clean - or at least makes it easier to clean. And wireless charging is great, too. 5/5 would recommend.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1051 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/09/dailydogo.html" />
      <updated>2024-10-09T17:16:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1051 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a1494f431ddb4777be09abc24dc0b3be.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1051 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1050 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/08/dailydogo.html" />
      <updated>2024-10-08T17:01:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1050 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4aa4e427d6144d9da5fe3d866a6995bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1050 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I seem to be my most...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/08/i-seem-to.html" />
      <updated>2024-10-08T09:10:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/08/i-seem-to.html</id>
      <content type="html">&lt;p&gt;I seem to be my most productive web developer self, if I strip away any kind of styling whatsoever. Just write very basic html while writing the backend. THEN style. Doing both at the same time just never works right. I assume it&#39;s too many spinning plates.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I seem to be my most productive web developer self, if I strip away any kind of styling whatsoever. Just write very basic html while writing the backend. THEN style. Doing both at the same time just never works right. I assume it&#39;s too many spinning plates.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1049 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/07/dailydogo.html" />
      <updated>2024-10-07T18:20:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1049 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a0b63cb8c241475ea0e29b35f2b3f779.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1049 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The new fridge is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/07/the-new-fridge.html" />
      <updated>2024-10-07T09:00:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/07/the-new-fridge.html</id>
      <content type="html">&lt;p&gt;The new fridge is here. After weeks of living with a replacement fridge in the home office room it&#39;s time for a properly sized fridge in the kitchen once more. 🥳&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The new fridge is here. After weeks of living with a replacement fridge in the home office room it&#39;s time for a properly sized fridge in the kitchen once more. 🥳</echofeed:content>
    </entry>
    <entry>
      <title>
        
          First Day of using...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/06/first-day-of.html" />
      <updated>2024-10-06T20:50:10Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/06/first-day-of.html</id>
      <content type="html">&lt;p&gt;First Day of using DayOne again after my latest entry before that was from April 2018. But I yearn for a more prosaic and removed writing environment for my diary. Obsidian is my work horse, but I&#39;d like to explore using a dedicated journaling app.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        First Day of using DayOne again after my latest entry before that was from April 2018. But I yearn for a more prosaic and removed writing environment for my diary. Obsidian is my work horse, but I&#39;d like to explore using a dedicated journaling app.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Gurman: Apple to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/06/gurman-apple-to.html" />
      <updated>2024-10-06T19:43:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/06/gurman-apple-to.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.macrumors.com/2024/10/06/apple-to-launch-new-m4-macs-nov-1/&quot;&gt;Gurman: Apple to Launch New M4 Macs and iPad Mini 7 on November 1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A new mini would be great. Here&#39;s hoping that a new mini also gets a keyboard case/stand. I&#39;m not actually in the market for a new iPad (I have a mini and the smaller M1 pro), but when it&#39;s time I would want to go with a mini again.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Gurman: Apple to Launch New M4 Macs and iPad Mini 7 on November 1 A new mini would be great. Here&#39;s hoping that a new mini also gets a keyboard case/stand. I&#39;m not actually in the market for a new iPad (I have a mini and the smaller M1 pro), but when it&#39;s time I would want to go with a mini again.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1048 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/06/dailydogo.html" />
      <updated>2024-10-06T18:56:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1048 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a18ca3f724834d8693ab1858959743a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1048 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1047 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/05/202541.html" />
      <updated>2024-10-05T17:25:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/05/202541.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1047 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/faf9fbbd759241dd81940b36395613e2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1047 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1046 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/05/dailydogo.html" />
      <updated>2024-10-05T08:06:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1046 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3cb201ace93b4b27a10a35d15f1eb416.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1046 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;m probably in the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/04/im-probably-in.html" />
      <updated>2024-10-04T09:25:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/04/im-probably-in.html</id>
      <content type="html">&lt;p&gt;I&#39;m probably in the minority, but I actually do like discord. I enjoy the more private community aspect that you get. That&#39;s perfect for something like podcasts, streamer communities, etc.&lt;/p&gt;
&lt;p&gt;A valid point of criticism is that if you have information that ought to be discoverable using a search engine and/or has archival value, that it shouldn&#39;t be only available in these chat silos.&lt;/p&gt;
&lt;p&gt;Still, I do appreciate the smaller scale and its semi-privateness quite a bit.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;m probably in the minority, but I actually do like discord. I enjoy the more private community aspect that you get. That&#39;s perfect for something like podcasts, streamer communities, etc. A valid point of criticism is that if you have information that ought to be discoverable using a search engine and/or has archival value, that it shouldn&#39;t be only available in these chat silos. Still, I do appreciate the smaller scale and its semi-privateness quite a bit.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1045 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/03/dailydogo.html" />
      <updated>2024-10-03T18:30:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1045 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/256e41cd14a640e09c472a72877a0d62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1045 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Really!? UPS Finland...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/03/really-ups-finland.html" />
      <updated>2024-10-03T14:35:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/03/really-ups-finland.html</id>
      <content type="html">&lt;p&gt;Really!? UPS Finland sent me a message basically saying &amp;quot;Your shipment is coming…&amp;quot;. I saw the notification, but didn&#39;t bother to open it. Why would I? Well I finally got around to reading the whole thing and it says (not their exact words): &amp;quot;Your shipment is coming. If you don&#39;t reply to us, we will drop off the package in some shop some distance away, instead of sending it to your original home address, where you&#39;re comfy and content and expect the package to come. Oh and do so before 4 p.m. Oh it&#39;s after 4 p.m.? Sucks to be you!&amp;quot;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Really!? UPS Finland sent me a message basically saying &amp;quot;Your shipment is coming…&amp;quot;. I saw the notification, but didn&#39;t bother to open it. Why would I? Well I finally got around to reading the whole thing and it says (not their exact words): &amp;quot;Your shipment is coming. If you don&#39;t reply to us, we will drop off the package in some shop some distance away, instead of sending it to your original home address, where you&#39;re comfy and content and expect the package to come. Oh and do so before 4 p.m. Oh it&#39;s after 4 p.m.? Sucks to be you!&amp;quot;

        https://blog.martin-haehnel.de/2024/10/03/really-ups-finland.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1044 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/02/200322.html" />
      <updated>2024-10-02T17:03:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/02/200322.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1044 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8330e07668d34e5082d7ee54c653e6b0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1044 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1043 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/02/dailydogo.html" />
      <updated>2024-10-02T07:02:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1043 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6788479306af4029bf8aa67406f24a85.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1043 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I LOVE me some small...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/10/01/i-love-me.html" />
      <updated>2024-10-01T11:30:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/10/01/i-love-me.html</id>
      <content type="html">&lt;p&gt;I LOVE me some small functions/methods. For work I am implementing a class that replaces occurrences of the &lt;a href=&quot;https://en.wikipedia.org/wiki/%C3%9F&quot;&gt;German &amp;quot;SZ&amp;quot; ß/ẞ&lt;/a&gt;. Here are some of the methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;replaceSz&lt;/li&gt;
&lt;li&gt;includesSz&lt;/li&gt;
&lt;li&gt;includesSmallSz&lt;/li&gt;
&lt;li&gt;includesBigSz&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Am I going too far? 😅 I feel that &amp;quot;mini methods&amp;quot; like these make code more understandable, because you only have to grok &lt;em&gt;either&lt;/em&gt; the implementations or the composed logical blocks, but not both at the same time. Also stack traces become better and debugging is easier.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I LOVE me some small functions/methods. For work I am implementing a class that replaces occurrences of the German &amp;quot;SZ&amp;quot; ß/ẞ. Here are some of the methods: replaceSz includesSz includesSmallSz includesBigSz Am I going too far? 😅 I feel that &amp;quot;mini methods&amp;quot; like these make code more understandable, because you only have to grok either the implementations or the composed logical blocks, but not both at the same time. Also stack traces become better and debugging is easier.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1042 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/30/dailydogo.html" />
      <updated>2024-09-30T19:04:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1042 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c63a34d60044a44b059ba4882a774d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1042 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I am almost...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/30/i-am-almost.html" />
      <updated>2024-09-30T15:41:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/30/i-am-almost.html</id>
      <content type="html">&lt;p&gt;I am almost reluctant to write this down (because some people might not be able to use this tip), but: Do not underestimate the power of screenshots in your own private notes! Instead of writing things down twice - or even copy &amp;amp; pasting, consider a screenshot for some of your things - especially those that profit from a little visual context.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I am almost reluctant to write this down (because some people might not be able to use this tip), but: Do not underestimate the power of screenshots in your own private notes! Instead of writing things down twice - or even copy &amp;amp; pasting, consider a screenshot for some of your things - especially those that profit from a little visual context.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          What I didn&#39;t...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/30/what-i-didnt.html" />
      <updated>2024-09-30T13:03:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/30/what-i-didnt.html</id>
      <content type="html">&lt;p&gt;What I didn&#39;t consider &lt;a href=&quot;https://blog.martin-haehnel.de/2024/09/29/back-to-posting.html&quot;&gt;when trying to write more posts originating from my blog&lt;/a&gt;: What if I want to refer to another mastodon post? What if I want to create a little thread?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://social.lol/@matti/113225241677540444&quot;&gt;Both happened today at once.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And how funny that this post even briefly appeared in my &amp;quot;Popular &amp;amp; Trending…&amp;quot; tab in Ivory.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my post appearing in the Popular &amp;amp; Trending tab. The contents of the post can be found in the link of the main text.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-30-at-12.06.162x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        What I didn&#39;t consider when trying to write more posts originating from my blog: What if I want to refer to another mastodon post? What if I want to create a little thread? Both happened today at once. And how funny that this post even briefly appeared in my &amp;quot;Popular &amp;amp; Trending…&amp;quot; tab in Ivory.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Back to posting from...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/29/back-to-posting.html" />
      <updated>2024-09-29T20:33:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/29/back-to-posting.html</id>
      <content type="html">&lt;p&gt;Back to posting from my blog first and crossposting - transparently - to Mastodon. It seems worth it to me to do it like that and have my posts originate from my blog. Will anybody else but me care? Probably not. But I &lt;em&gt;do&lt;/em&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Back to posting from my blog first and crossposting - transparently - to Mastodon. It seems worth it to me to do it like that and have my posts originate from my blog. Will anybody else but me care? Probably not. But I do.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1041 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/29/dailydogo.html" />
      <updated>2024-09-29T18:46:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1041 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ff4d2ebbf5f4d1f93267b22a7e715fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1041 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1040 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/28/dailydogo.html" />
      <updated>2024-09-28T20:38:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1040 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0f5dcc7b7e48339aeb4ce5b1488e6d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1040 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1039 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/27/dailydogo.html" />
      <updated>2024-09-27T19:56:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1039 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f60ed00ecb340d6833c5d0ebc96f9fe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1039 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1038 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/26/dailydogo.html" />
      <updated>2024-09-26T19:01:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1038 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e2fb913d1869472dbdfbc16268e9d884.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1038 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1037 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/25/dailydogo.html" />
      <updated>2024-09-25T17:00:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1037 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5ceeba9e3b8943a88c88e7dfa7d4d49b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1037 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1036 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/24/dailydogo.html" />
      <updated>2024-09-24T19:20:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1036 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4c2c92718deb439d880f67be0171e8fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1036 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1035 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/23/211051.html" />
      <updated>2024-09-23T18:10:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/23/211051.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1035 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ded29411778d4360abd98114a33d92b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1035 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1034 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/23/dailydogo.html" />
      <updated>2024-09-22T21:18:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1034 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b9c1063b44a1400cad1702e5b487ffe6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1034 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1033 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/21/dailydogo.html" />
      <updated>2024-09-21T17:44:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1033 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/43e8e73a298b47ccb5a3085abf09dd99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1033 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1032 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/20/dailydogo.html" />
      <updated>2024-09-20T17:39:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1032 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69d9d3284a2441ba92780d6108fb784a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1032 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1031 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/19/220044.html" />
      <updated>2024-09-19T19:00:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/19/220044.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1031 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3c6e912ec52418b81a69d9655253f82.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1031 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1030 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/19/dailydogo.html" />
      <updated>2024-09-19T05:10:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1030 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fceacabe5344144883f646ada0a88e8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1030 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1029 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/17/dailydogo.html" />
      <updated>2024-09-17T18:01:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1029 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cfd5838d93d04402bc5ee6466c51cbdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1029 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1028 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/16/dailydogo.html" />
      <updated>2024-09-16T19:07:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1028 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2862419142fa42cbaa417f5e63057c9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1028 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1027 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/15/dailydogo.html" />
      <updated>2024-09-15T20:15:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1027 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/46132515243b4299a4733cd807ca3099.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1027 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1026 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/14/dailydogo.html" />
      <updated>2024-09-14T19:20:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1026 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c7a6abb51a3403c90993f09b588fbf6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1026 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1025 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/13/dailydogo.html" />
      <updated>2024-09-13T18:48:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1025 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/937dd4ba12824f82a97c386f7bc72fc2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1025 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1024 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/12/dailydogo.html" />
      <updated>2024-09-12T19:43:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1024 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0b835be688d2439d8d09e6f83e1e653e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1024 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1023 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/11/dailydogo.html" />
      <updated>2024-09-11T19:38:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1023 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f209ae7a4b214f89895f7bdad392389a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1023 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1022 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/10/dailydogo.html" />
      <updated>2024-09-10T20:05:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1022 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/03c1f80f295543cdac896cfd170b82bc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1022 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1021 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/09/dailydogo.html" />
      <updated>2024-09-09T17:31:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1021 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b639f24c257142b793378a2eba17d988.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1021 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A Limitation Of Laravel&#39;s Seeders - And Why It is There



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/09/a-limitation-of.html" />
      <updated>2024-09-09T15:23:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/09/a-limitation-of.html</id>
      <content type="html">&lt;p&gt;Laravel has pretty cool tools to work with databases and fill them with seeded data. This is useful in many contexts, but mostly if you want to test things.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://laravel.com/docs/11.x/seeding&quot;&gt;Seeders&lt;/a&gt; are cool, because they can make use of model &lt;a href=&quot;https://laravel.com/docs/11.x/eloquent-factories&quot;&gt;factories&lt;/a&gt; - or factories for short - to create some test data the conforms to what we consider valid data.&lt;/p&gt;
&lt;p&gt;However, the combination of seeders and model factories has a limitation and that is, that seeders are not meant to know of each others&#39; results. So if you have three tables - users, blogs, posts for example -  that have some kind of relationship to each other &lt;em&gt;and&lt;/em&gt; would like to have individual seeders for those tables, then you can&#39;t use factories in those seeders without some extra work currently.&lt;/p&gt;
&lt;p&gt;Note that factories do not have this limitation. You can use &lt;code&gt;recycle&lt;/code&gt; on a model factory and use the resulting model in a subsequent factory call. This even works with indirect relationships, like a post that belongs to a blog and a blog also belonging to a user (and therefore the post belonging to a user). This short youtube video explains what I&#39;m talking about:&lt;/p&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/8sNkNOTkEXY?si=8u0a5xnhxd-ozP_B&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;p&gt;So that&#39;s pretty cool and all but if you want dedicated seeders for different parts of your database you&#39;re still out of luck. Why would you want different seeders? Because you may want to separate the generation of seed data by entity. Sure, you could create a user which in turn also creates a blog with a handful of posts in it, but maybe you&#39;d rather create a user, a blog and some posts and bind them to each other afterwards.&lt;/p&gt;
&lt;p&gt;Separating the seeding procedure in this way will help you later, too, you might think, because if I ask you where posts are seeded, the answer could be &amp;quot;in the PostSeeder, duh&amp;quot;, if we could use that convention.&lt;/p&gt;
&lt;p&gt;We would need to make it possible to receive the results of a seeder, but there is a problem: A seeder is supposed to create more than one row - or at least it should be possible work that way. So in other words: If we want to create a handful of posts per blog and we create one or two of those per user and we also create three test users (let&#39;s say), how are we supposed to relate all of these disparate entities to each other even if we could take the results from one seeder with us to the next? How do we disambiguate the instances of the created entities? Which one of our 2 blogs should be connected to the 10 posts? Should it be five and five? Two and eight? How do we communicate that?&lt;/p&gt;
&lt;p&gt;We would need to explicitly set specific entities created by the factory in the other seeder on the factory in the current, but it will become confusing rather quickly, because factories might also have states - like a user who is deactivated and so forth. And as I said, if we create more than one, how do we pick an entity?&lt;/p&gt;
&lt;p&gt;Since it&#39;s not easily possible to tell the next seeder what the previous seeder has created, having lots of seeders - e.g. one for each table - doesn&#39;t make sense. We have to take the route, where we handle creating related but different entities in the same seeder.&lt;/p&gt;
&lt;p&gt;Another practical problem comes from the fact that a database seeder doesn&#39;t return its creates models, only the seeder classes it itself called. In order to still go the route of keep entities in their own seeders, we would need to enhance the basic database seeder classes Laravel provides. So from that perspective it seems that the framework itself doesn&#39;t intend you to separate the creation of different entities using factories out into different seeders.&lt;/p&gt;
&lt;p&gt;P.S.: It is kind of weird then, that when you create a model that you are also given the option to create a database seeder:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of the artisan make:model cli command, showing that it allows to create a database seeder when creating a model.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-09-09-at-14.35.532x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;This seems to suggest that maybe there is an intent to create seeders for every model (or entity), but as I tried to show, this is not practical and the seeder classes themselves do not really follow that logic and do not afford you the functionality to communicate between different seeders out of the box.&lt;/p&gt;
&lt;p&gt;P.P.S.: What you can do is communicate through the database, I guess. Meaning that if you create entities in one seeder - using a factory (or not) - you can of course read those rows from the database and relate different entities to each other by retrieving them from the database. But you&#39;ll lose the elegance of expressing these relationships through the ORM and the recycle method.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A Limitation Of Laravel&#39;s Seeders - And Why It is There

        https://blog.martin-haehnel.de/2024/09/09/a-limitation-of.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1020 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/08/dailydogo.html" />
      <updated>2024-09-08T20:11:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1020 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/42e86f275beb407483dafdb4a303199e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1020 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1019 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/07/dailydogo.html" />
      <updated>2024-09-07T20:44:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1019 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d88322f131f4ddcbfcb71efa36d9eed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1019 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1018 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/06/dailydogo.html" />
      <updated>2024-09-06T20:30:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1018 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e812050a9d244207b04abaa9509bbc91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1018 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1017 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/05/dailydogo.html" />
      <updated>2024-09-05T19:42:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1017 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da665ca15084cf29af6d5f8c0a22dc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1017 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1016 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/04/dailydogo.html" />
      <updated>2024-09-04T18:40:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1016 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b2501b2474949708d1a66ad81b79b67.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1016 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1015 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/02/dailydogo.html" />
      <updated>2024-09-02T18:17:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1015 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8b8962febb3b4986bf50551ea094a5a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1015 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1014 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/09/01/dailydogo.html" />
      <updated>2024-09-01T17:14:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/09/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1014 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c65629a2b94ca7ade1844149163f81.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1014 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1013 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/31/dailydogo.html" />
      <updated>2024-08-31T19:30:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1013 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/311af30eacfd4aa6b6249608f13c3c19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1013 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1012 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/30/dailydogo.html" />
      <updated>2024-08-30T17:02:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1012 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aacc9b514496477d8f85ff4068937ba4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1012 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1011 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/29/dailydogo.html" />
      <updated>2024-08-29T19:35:55Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1011 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/31943e6f5f96493ba2328bf25dd95e0e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1011 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1010 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/28/dailydogo.html" />
      <updated>2024-08-28T16:50:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1010 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f1a8ec8401c54782af36ec13391e6e97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1010 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1009 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/27/dailydogo.html" />
      <updated>2024-08-27T19:08:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1009 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b466070c16.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1009 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1008 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/26/221511.html" />
      <updated>2024-08-26T19:15:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/26/221511.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1008 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b8a139583.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1008 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1007 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/26/dailydogo.html" />
      <updated>2024-08-26T12:07:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1007 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0c4b5d5cb8ac40708a727965aa74cfb0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1007 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1006 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/24/dailydogo.html" />
      <updated>2024-08-24T17:10:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1006 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/41136c30e06b4d8bae3e6952324fbca9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1006 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1005 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/23/dailydogo.html" />
      <updated>2024-08-23T19:46:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1005 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/167bad7109d74efc97721dea27807229.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1005 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1004 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/22/dailydogo.html" />
      <updated>2024-08-22T19:36:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1004 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1788fc990c85416e83051f6c485c7987.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1004 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1003 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/21/dailydogo.html" />
      <updated>2024-08-21T20:06:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1003 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8fd92c2a3982429f986b1cca8f581f07.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1003 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1002 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/20/dailydogo.html" />
      <updated>2024-08-20T20:03:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1002 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/91c504328e794720ba0911669b3f24ea.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1002 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1001 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/19/dailydogo.html" />
      <updated>2024-08-19T19:04:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1001 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/06f605a9895540c89ff6ba53a799d335.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1001 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          That [1000th...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/18/that-th-pic.html" />
      <updated>2024-08-18T20:09:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/18/that-th-pic.html</id>
      <content type="html">&lt;p&gt;That &lt;a href=&quot;https://blog.martin-haehnel.de/2024/08/18/222309.html&quot;&gt;1000th pic&lt;/a&gt; in my &amp;quot;Daily Dogo&amp;quot; series marks by sheer coincidence also the third year that Napu is on this planet.&lt;/p&gt;
&lt;p&gt;She has not been with us from day zero, of course, that day will come in October. Also, I according to wolfram alpha, I have dropped 23 days somewhere along the way:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot from Wolfram Alpha showing that it&amp;amp;#39;s been 1023 days from 2021-10-30 to 2024-08-18 amongst other things.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.52.002x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;I guess I don&#39;t mind it that much and I&#39;m not going to fix it either. Especially in the beginning when doing things manually every day or when traveling and having to repair the streak things got at times untidy. But whatever.&lt;/p&gt;
&lt;p&gt;Not all pics are great, but I am immensely proud to have stuck to publishing these for all this time.&lt;/p&gt;
&lt;p&gt;A big thank you to anybody who liked these posts on Mastodon or MB!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And even bigger thank you to my partner E. who provided a good amount of the best pictures when I didn&#39;t have any good photos (or sometimes any at all) of our shared little chaos agent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you&#39;re curious how the process works: I use shortcuts and an app called &lt;a href=&quot;https://apps.apple.com/us/app/humboldt/id1592768206&quot;&gt;Humboldt&lt;/a&gt; by &lt;a href=&quot;https://vincode.io/2021/11/01/shortcuts-for-microblog.html&quot;&gt;Maurice Parker&lt;/a&gt; (&lt;a href=&quot;https://micro.blog/vincode&quot;&gt;@vincode&lt;/a&gt; on MB) to publish these posts semi-automatically.&lt;/p&gt;
&lt;p&gt;Here are some screenshots:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of my main DailyDogo Apple Shortcut&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.36.202x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;This one is built out of two other shortcuts:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of my DailyDogo Image Apple Shortcut&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.072x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;This one converts and then uploads an image of my photos app to MB.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of my DailyDogo Suggestion Apple Shortcut&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cleanshot-2024-08-18-at-22.37.392x.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;This one looks at the rss feed of the daily dogo category and does some string manipulation to get the next number for the daily dogo.&lt;/p&gt;
&lt;p&gt;So there you have it. Not very fancy. Not doing alt texts for these pains me at times, but I am pretty sure that I probably would have stopped the project when I had a tough time otherwise. It really is thanks to the shortcut that I managed to keep this up for so long.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        That 1000th pic in my &amp;quot;Daily Dogo&amp;quot; series marks by sheer coincidence also the third year that Napu is on this planet. She has not been with us from day zero, of course, that day will come in October. Also, I according to wolfram alpha, I have dropped 23 days somewhere along the way: I guess I don&#39;t mind it that much and I&#39;m not going to fix it either. Especially in the beginning when doing things manually every day or when traveling and having to repair the streak things got at times untidy. But whatever. Not all pics are great, but I am immensely proud to have stuck to publishing these for all this time. A big thank you to anybody who liked these posts on Mastodon or MB! And even bigger thank you to my partner E. who provided a good amount of the best pictures when I didn&#39;t have any good photos (or sometimes any at all) of our shared little chaos agent. If you&#39;re curious how the process works: I use shortcuts and an app called Humboldt by Maurice Parker (@vincode on MB) to publish these posts semi-automatically. Here are some screenshots: This one is built out of two other shortcuts: This one converts and then uploads an image of my photos app to MB. This one looks at the rss feed of the daily dogo category and does some string manipulation to get the next number for the daily dogo. So there you have it. Not very fancy. Not doing alt texts for these pains me at times, but I am pretty sure that I probably would have stopped the project when I had a tough time otherwise. It really is thanks to the shortcut that I managed to keep this up for so long.

        https://blog.martin-haehnel.de/2024/08/18/that-th-pic.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 1000 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/18/222309.html" />
      <updated>2024-08-18T19:23:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/18/222309.html</id>
      <content type="html">&lt;p&gt;DailyDogo 1000 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c88b3771131b49798d6e84ba3f95be0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 1000 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 999 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/18/dailydogo.html" />
      <updated>2024-08-18T08:38:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 999 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9892b00e5cba45eebf4b47704bf366cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 999 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 998 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/16/dailydogo.html" />
      <updated>2024-08-16T18:03:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 998 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1c965499969f43e493a3019538e46dc5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 998 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 997 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/15/dailydogo.html" />
      <updated>2024-08-15T18:28:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 997 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ea0bb315d6bc40b28af7e9637e9452ca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 997 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 996 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/14/220311.html" />
      <updated>2024-08-14T19:03:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/14/220311.html</id>
      <content type="html">&lt;p&gt;DailyDogo 996 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/80240acd906648728efe6e5f8bc57315.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 996 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 995 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/14/dailydogo.html" />
      <updated>2024-08-14T19:02:49Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 995 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9ef0f083b5e948e4996dd7b985323742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 995 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 994 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/12/dailydogo.html" />
      <updated>2024-08-12T19:53:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 994 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/253e753666604eed8015aa68f6f3c124.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 994 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 993 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/11/dailydogo.html" />
      <updated>2024-08-11T18:16:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 993 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f3d931fbed8c49d0afb881f0f8385574.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 993 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The Way We Use LLMs Makes All The Difference



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/11/the-way-we.html" />
      <updated>2024-08-11T12:34:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/11/the-way-we.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-08-14 - added a callout to point out that my opinion has slightly shifted over time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;Not exactly my opinion anymore (but almost)&lt;/p&gt;
&lt;p&gt;I stand by a lot what I wrote here, but not all of it. Some facts have also changed. F.x: I use AI stuff not only for coding, but as a reflective mirror at times. My latest &amp;quot;version&amp;quot; of my stance vis-a-vis &amp;quot;AI&amp;quot;, is articulated in this Article: &lt;a href=&quot;https://blog.martin-haehnel.de/2025/08/14/those-recent-puzzmo-articles-about-claude-code/&quot;&gt;Those Recent Puzzmo Articles about Claude Code&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I am not using a lot of AI stuff. I do, however, have access to and use GitHub Copilot and ChatGPT since we are supposed to be using them at work. I am also totally aware of the problems (ethical, environmental, social, economical, ...) that LLMs pose, thanks to Mastodon and my feed reader.&lt;/p&gt;
&lt;p&gt;So, being exposed to lots of AI stuff in practice and lots of critical (and sometimes not so critical) thought about using LLMs, I have observed a certain clarifying trend in my thinking about AI.&lt;/p&gt;
&lt;p&gt;But before we come to that, I have to frame my thoughts correctly.&lt;/p&gt;
&lt;h4 id=&quot;living-virtuously&quot;&gt;Living virtuously&lt;/h4&gt;
&lt;p&gt;If I could decide, I would live virtuously, or rather, I would like to live in a world where using LLMs is a neutral-positive thing. However, if we think about it, nothing is neutral or positive, and everything has trade-offs. Everything has a cost.&lt;/p&gt;
&lt;p&gt;Owning a car has practical benefits but certainly has an impact on all kinds of things around us. Choosing to fly to see family has an impact. Living a privileged life in a Nordic country. Owning a dog. Wishing to own a freestanding house with a yard. Wanting to own a cottage, too. Wanting to travel. Wanting to refresh your hardware. Wishing to update our furniture. Wanting kids.&lt;/p&gt;
&lt;p&gt;Some of these things are socially acceptable wants/behaviors/possessions. Some of them have become more questionable in recent times. But I think it&#39;s important to recognize that a) none of these things are climate-neutral, without privilege and above ethical scrutiny, and b) none of these things (or other, equivalent things) are likely to be not wanted by at least some people, and we as citizens of a (western, democratic) society mostly make our peace with that, because changing attitudes towards these things is &lt;em&gt;hard&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;And as much as we may recognize the costs associated with these things, we may want to have them ourselves anyways, too. So how could we criticize people for wanting them? Furthermore, we only have one life to live, and we are, in the end, not really able to transcend any and all societal wants and needs. Some we can, some we can&#39;t. Some will feel like natural, biological needs and wants, and we will feel justified in seeking fulfillment of those.&lt;/p&gt;
&lt;p&gt;And then there are others - mostly those we are able to let go - those will feel like optional luxuries we can choose to adopt/buy/whatever. And we may get mad at others for wanting them much more than us, even though we don&#39;t need them. Don&#39;t get me wrong: There will always be discourse around things like this. And things and values change, obviously, but there is another category of wants and needs that are socially unacceptable pretty much across the board: And these are taboos. Most things aren&#39;t taboos, though.&lt;/p&gt;
&lt;p&gt;And LLMs aren&#39;t either.&lt;/p&gt;
&lt;h4 id=&quot;llms-from-my-viewpoint&quot;&gt;LLMs from my viewpoint&lt;/h4&gt;
&lt;p&gt;With that in mind, LLMs are not that different from other socially acceptable things out there. They are, however, a relatively new product/service category. They are not a new technology, just a new product (EDIT: However, I do use the shorthand of technology to refer to them in what follows). As is often the case with new &amp;quot;technologies&amp;quot; like this, We tend to ask of these technologies and of each other: what is an appropriate amount and type of use, and are they, after all, a net positive for society and me? I have two answers.&lt;/p&gt;
&lt;p&gt;For me, they are a positive in certain contexts. These contexts are those where what is generated can be easily validated. For me, so far, all of these contexts pertain to programming.&lt;/p&gt;
&lt;p&gt;LLMs help to paper over certain gaps in my knowledge, and they help with the busywork of programming by reducing the amount of boilerplate code I have to write by hand. If the code doesn&#39;t run, the generated code was wrong, and it&#39;s relatively easy to figure out what was wrong.&lt;/p&gt;
&lt;p&gt;AI can be a great rubber duck and boilerplate generator. In sum, programming with LLMs forms a great, tight feedback loop that makes coding more enjoyable and makes me feel more productive most of the time.&lt;/p&gt;
&lt;p&gt;I very rarely use it for anything not programming-related. I experimented with using it for ideation - my notes system is MUCH better at making me think interesting thoughts - and as a writing coach - but this just removed any writerly voice I had. I am personally not interested in using AI to generate texts, game systems or min/max anything (except maybe my programming).&lt;/p&gt;
&lt;h4 id=&quot;llms-and-society&quot;&gt;LLMs and Society&lt;/h4&gt;
&lt;p&gt;For the societal viewpoint, on the other hand, it&#39;s important to keep in mind that society is not a person, and it doesn&#39;t make decisions. It doesn&#39;t have intentions, and you can&#39;t actually interact with it directly. So making demands on society doesn&#39;t make a lot of sense. It may make some sense to demand change from politicians, but politicians are not society.&lt;/p&gt;
&lt;p&gt;This text is not about changing society through political action, though. It is about exploring what could be a way to live within our current situation that neither loses sight of the complexities of life, by proclaiming a set of maxims, nor throws out the baby with the bath water, by being a cynical, egotistical jerk. The former leads to a kind of &amp;quot;purity discourse&amp;quot; that doesn&#39;t help any real person. If anything, it may make you feel bad, if you can&#39;t live up to the manifesto&#39;s demands. And the latter lives in a vacuum where nobody else matters, which is mostly sad and infuriating for anyone with a heart.&lt;/p&gt;
&lt;p&gt;So instead, I would want to explore what it would mean to live in a society that expects its members to live a certain way, and therefore its members tend to err on the side of fulfilling these expectations. This doesn&#39;t mean that if you fall short of society&#39;s expectations, you aren&#39;t a member anymore, just that its members may view you less favorably. But it has nothing to do with being in or out.&lt;/p&gt;
&lt;p&gt;People who fall far short of society&#39;s expectations, - e.g., those who commit crimes, may be punished for it. From fines to prison, being punished for bad behavior still doesn&#39;t make you not a part of a society. In other words, I am interested in figuring out a baseline expectation level towards the use of LLMs that you can at times overstep - as long as you don&#39;t go too far.&lt;/p&gt;
&lt;p&gt;Therefore, the question &amp;quot;Are LLMs a positive for society?&amp;quot; has to be restated as follows: Answer the question &amp;quot;How would I like society to behave with regard to LLMs?&amp;quot; and then live like a person who lives in a society that answers the question the same way.&lt;/p&gt;
&lt;p&gt;Note that I don&#39;t touch LLMs, the technology or product, at all. I can imagine LLMs being regulated, turned into a public good, or whatever, but that part is not in my control. Imagining things along the lines of how to change LLMs is therefore imagining the wrong thing for this purpose here.&lt;/p&gt;
&lt;p&gt;Here, we are interested in the citizens of a society to figure out a model of behavior we can follow that would work &amp;quot;scaled up&amp;quot; (that is, for more than just me or the privileged few). I don&#39;t want LLMs to be used for frivolous things - using water-guzzling LLM-APIs to water your own houseplants, is a real-life example I came across in recent months.&lt;/p&gt;
&lt;p&gt;But since I imagine myself living in a society that is cognizant of the associated costs of using LLMs, people would mostly not do these frivolous things with LLMs because it feels morally wrong to them. This scales well. We may here and there use LLMs for frivolous things, but we aren&#39;t overdoing it because we are not blind to its cost. And we wouldn&#39;t establish whole automation workflows based on LLM-APIs for automating watering our houseplants while the data centers running these LLM services are guzzling fresh water like nobody&#39;s business.&lt;/p&gt;
&lt;p&gt;I would want it to be used for beneficial use-cases like programming. By this I mean I would let LLMs help me generate boilerplate code and use it as an interactive rubber duck. I don&#39;t mean that we would replace junior or mid-level developers (such as myself) with AI assistants. We would all know that it doesn&#39;t work in the first place. We may try to run small-scale experiments here and there to see if we could use AI as a developer replacement, but we wouldn&#39;t try to actually get rid of workers to make more profit.&lt;/p&gt;
&lt;p&gt;Since we are all into reading, writing and expressing ourselves through our unique voice and not through a statistical middle ground generator, we prefer and support people that express themselves by doing the hard work of actually doing so.&lt;/p&gt;
&lt;p&gt;We would, however, try to stay open-minded. There may well be a time when an LLM can be beneficial for automating the rote parts of personal knowledge management, for example. So we may periodically try these things out.&lt;/p&gt;
&lt;p&gt;In short, We would all stay curious about the technology&#39;s potential but would make sure that we were not building our whole lives around them. We wouldn&#39;t automate tasks with them that we don&#39;t have to and above all else, we would prefer a unique voice when expressing ideas, feelings, and viewpoints over the statistical recombination mishmash. If it matters, we do prefer the human touch.&lt;/p&gt;
&lt;p&gt;That being said, We will all fall short or disagree once in a while with one or more of these preferences and expected behaviors. And - within reason - there is nothing wrong with that. Life&#39;s complicated.&lt;/p&gt;
&lt;p&gt;To get back to the question whether LLMs are a positive for society, the answer depends entirely on what we are using LLMs for. Right now, it seems to me that LLMs are mostly helpful in a programming context (and maybe a handful of other use cases, although I have no first-hand experience of that) and they are regrettably useful - or at least &lt;em&gt;used&lt;/em&gt; - to try to scam people, make workers lose their jobs, threaten the environment and drown out the beauty and uniqueness of everyone&#39;s voice.&lt;/p&gt;
&lt;p&gt;Depending on our use and what we expect others to use it for, it can be at least a neutral thing. Or a somewhat-negative-but-because-of-the-upside-accepted thing. Like a small, reasonable car.&lt;/p&gt;
&lt;p&gt;This twitter post made the rounds recently:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;You know what the biggest problem with pushing all-things-AI is? Wrong direction.
I want AI to do my laundry and dishes so that I can do art and writing, not for AI to do my art and writing so that I can do my laundry and dishes.&amp;quot;
— &lt;a href=&quot;https://x.com/AuthorJMac/status/1773679197631701238&quot;&gt;x.com/AuthorJMa...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And I think it encapsulates beautifully my sentiment: Use AI for the right things and there isn&#39;t really a big problem with the technology.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The Way We Use LLMs Makes All The Difference

        https://blog.martin-haehnel.de/2024/08/11/the-way-we.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 992 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/10/dailydogo.html" />
      <updated>2024-08-10T20:14:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 992 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/55e41675a7a94b4f916e8d686703c858.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 992 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 991 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/09/dailydogo.html" />
      <updated>2024-08-09T20:01:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 991 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/acc2f50ecd6d45728f1fba2a9620cd48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 991 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 990 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/08/dailydogo.html" />
      <updated>2024-08-08T19:41:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 990 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d71af7fe183a40b0a9108502fafd89c3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 990 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 989 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/07/dailydogo.html" />
      <updated>2024-08-07T17:18:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 989 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7d45a7921ca349e78de00ccd3fd9d32b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 989 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 988 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/06/dailydogo.html" />
      <updated>2024-08-06T20:08:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 988 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9a005523344a4493a34934f5f09289ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 988 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 987 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/05/dailydogo.html" />
      <updated>2024-08-05T19:28:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 987 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5a33d532324243a48e732c337066117f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 987 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 986 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/04/dailydogo.html" />
      <updated>2024-08-04T19:01:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 986 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/05e172531e9d46c4846d6f3afbd51edb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 986 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 985 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/03/dailydogo.html" />
      <updated>2024-08-03T17:00:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 985 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77201cd0d4444a01b203be11b436d572.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 985 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 984 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/02/dailydogo.html" />
      <updated>2024-08-02T18:50:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 984 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a09655ee39d746608356f46efe553533.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 984 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 983 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/08/01/dailydogo.html" />
      <updated>2024-08-01T20:17:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/08/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 983 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/24f2f2f0145546bf8713c85dff936a48.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 983 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 982 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/31/dailydogo.html" />
      <updated>2024-07-31T17:59:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 982 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cdb9bfb607c4c4a8a13e34ffcd0229c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 982 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 981 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/30/dailydogo.html" />
      <updated>2024-07-30T20:00:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 981 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9c6013730049403180a169d76621370e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 981 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 980 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/29/dailydogo.html" />
      <updated>2024-07-29T19:34:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 980 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1fad344b17f147c9bc58fdb04a12bf6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 980 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 979 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/28/dailydogo.html" />
      <updated>2024-07-28T17:18:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 979 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5146e8a9c72145afbf2dde20c83db138.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 979 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 978 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/27/dailydogo.html" />
      <updated>2024-07-27T18:34:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 978 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/50301eb1292442a2af625f7ad8dfd6f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 978 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 977 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/26/dailydogo.html" />
      <updated>2024-07-26T20:26:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 977 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/de89b913461f48e1b4e0e18c8353558d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 977 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 976 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/25/dailydogo.html" />
      <updated>2024-07-25T20:05:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 976 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2dcc9f7e9dca42728173b036222d010d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 976 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 975 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/24/dailydogo.html" />
      <updated>2024-07-24T18:16:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 975 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ae24f7969ecd48f1b1549aa07319741f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 975 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 974 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/23/dailydogo.html" />
      <updated>2024-07-23T18:55:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 974 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/802a9b0197654f45b95e6220a9f73c91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 974 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 973 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/22/dailydogo.html" />
      <updated>2024-07-22T19:01:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 973 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca2bfb87ce5f42b4a15c57de08f23dbb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 973 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 972 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/21/dailydogo.html" />
      <updated>2024-07-21T17:15:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 972 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9830564cfddb466d8e253526dabb0c00.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 972 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 971 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/20/dailydogo.html" />
      <updated>2024-07-20T19:57:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 971 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7eba527f5ed44c168684960b61056b0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 971 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 970 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/19/225945.html" />
      <updated>2024-07-19T19:59:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/19/225945.html</id>
      <content type="html">&lt;p&gt;DailyDogo 970 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fa79d63542b24858be031f07824703fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 970 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 969 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/19/dailydogo.html" />
      <updated>2024-07-18T21:00:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 969 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2936594f4d644ba9ac17bae3ffe527d5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 969 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 968 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/18/dailydogo.html" />
      <updated>2024-07-17T21:26:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 968 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e24c676d1f045519b40d52390b7696b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 968 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 967 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/16/dailydogo.html" />
      <updated>2024-07-16T20:24:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 967 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69174294562b417f81a1db663822bc23.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 967 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 966 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/15/dailydogo.html" />
      <updated>2024-07-15T17:10:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 966 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bb357fe7549043eab5e731988350bf9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 966 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 965 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/14/232833.html" />
      <updated>2024-07-14T20:28:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/14/232833.html</id>
      <content type="html">&lt;p&gt;DailyDogo 965 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3f0dc349fdaa4eed964677d04f2ac812.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 965 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 964 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/14/dailydogo.html" />
      <updated>2024-07-14T15:38:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 964 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/450cded46c754f0d8a36f4347a3346aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 964 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload I thrive in a low-tech environment



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html" />
      <updated>2024-07-13T15:32:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html</id>
      <content type="html">&lt;p&gt;A vacation is a great chance to step back and reevaluate my current situation, maybe try a few new things and also maybe just refill the batteries. I&#39;m still in the middle of the three weeks summer vacation so any reflections are probably not yet solidified enough, but I anyways wanted to put these few little insights here, because the summer vacation part itself is kind of over - the last of my three weeks will be spent visiting my brother and mom.&lt;/p&gt;
&lt;p&gt;The main thing that I have realized:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I actually do enjoy a low technology environment and it makes me do the right or interesting thing more often.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The right or more interesting thing is reading, writing or being attentive in the here and now and enjoying my surroundings more, being more available to my partner or the dog. Part of that is not wearing headphones and listening to podcasts all the time.&lt;/p&gt;
&lt;p&gt;While we were staying in a hut without electricity I managed to finished one book, read half of another and wrote a bunch in my handwritten journal. At the same time I took immense pleasure from the surroundings: we were staying in a national park on an island that could only be reached by boat. Listening to podcasts or watching youtube would have only taken away from the experience. I conserved my phone&#39;s battery so much however, that I could listen to a podcast while falling asleep, which made listening to the podcast so much more valuable as well, since it was not a resource that I could access all the time or that was so plentiful as to be exhausting.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A photo of table inside a cabin, on which are laying a few items: a base cap, an empty soda bottle (club mate), an ebook reader and a notebook with a strap holding it closed and a pen tucked inside it&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-3757.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;Writing in a little notebook by hand has been great, too. I was able to add some stickers and my intention to write did not get redirected to consume social media or whatever when looking at my phone.&lt;/p&gt;
&lt;p&gt;Living (and not only working) at my own natural pace is really the key to my happiness. I will have to see how to integrate this with the demands of my job. I have noticed, though, that I am looking more frequently for more efficient ways to do things.&lt;/p&gt;
&lt;p&gt;Example: I am emptying the dishwasher now by taking the dishes out in a way that batches them according to where they go (plates get taken out together, cups and glasses etc.) instead of emptying them according to the drawers in the dishwasher. This old way was less effective, because it meant closing and opening the same doors and pulling and pushing the same drawers over and over again. Now I just do that once and I can empty the dishwasher with less effort.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload I thrive in a low-tech environment

        https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Since I&#39;m going to a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/13/since-im-going.html" />
      <updated>2024-07-13T10:22:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/13/since-im-going.html</id>
      <content type="html">&lt;p&gt;Since I&#39;m going to a Finnish course in autumn I am starting to intensify my Duolingo efforts again. Very nice coincidence that the app changed how their daily practice looks like: I can do these handful of exercises in 20 minutes or so and the presentation gives me the impression I&#39;m done for today.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c3e176b783.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Since I&#39;m going to a Finnish course in autumn I am starting to intensify my Duolingo efforts again. Very nice coincidence that the app changed how their daily practice looks like: I can do these handful of exercises in 20 minutes or so and the presentation gives me the impression I&#39;m done for today.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 963 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/12/dailydogo.html" />
      <updated>2024-07-12T17:59:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 963 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/eadc0fd07bff4d34be6b9c134511960f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 963 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 962 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/11/204029.html" />
      <updated>2024-07-11T17:40:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/11/204029.html</id>
      <content type="html">&lt;p&gt;DailyDogo 962 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/913d273111be416c8e5a91e9353840ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 962 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 961 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/11/dailydogo.html" />
      <updated>2024-07-10T21:02:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 961 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8be77009576044458a67167bf8d64efd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 961 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 960 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/10/dailydogo.html" />
      <updated>2024-07-10T12:30:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 960 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/204d050b9f3f4dd4b9eda0a29ad23491.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 960 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 959 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/09/dailydogo.html" />
      <updated>2024-07-08T21:36:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 959 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6904a62253074cba9fe6231d82d8f8aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 959 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 958 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/07/dailydogo.html" />
      <updated>2024-07-07T18:12:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 958 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7df7346f0947480d98e81b036c7597c4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 958 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 957 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/06/dailydogo.html" />
      <updated>2024-07-06T18:29:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 957 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cbbaefdceb244f3a5fb6d59f704e37a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 957 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 956 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/05/dailydogo.html" />
      <updated>2024-07-05T20:52:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 956 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6fa434a391b5427da965e2186c8cf255.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 956 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 955 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/04/224105.html" />
      <updated>2024-07-04T19:41:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/04/224105.html</id>
      <content type="html">&lt;p&gt;DailyDogo 955 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/68608f7bedc2465080dc261311e00fef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 955 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Reflexions After Two Weeks Of Having Accepted My Ineffectiveness



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html" />
      <updated>2024-07-04T15:36:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html</id>
      <content type="html">&lt;p&gt;(I started #100DaysToOffload on the first of June and have written - not including this one - 12 Posts. I guess that&#39;s enough to make it? About a third of my days are spent pressing publish on a blog post. So far so good. Before I finished this paragraph, I was thinking that I was too slow ...)&lt;/p&gt;
&lt;p&gt;I had reasons to maybe reflect more inwardly for a moment, which is why I didn&#39;t write for a couple of weeks or so. Things at work didn&#39;t go so well, which was mostly because of me being told I was slow (and having been shown incontrovertible evidence proving this) and having to learn and having to un-learn and to accept a new truth about myself: That I am being slow and me being good (as good as I am which is good but not &lt;em&gt;evenly&lt;/em&gt; good and certainly not fast) at my work was and is mostly a result of being slow and willing to make up for it by working longer. Which is not a mode of working that is economical and that pays the bills.&lt;/p&gt;
&lt;p&gt;In a big company this might not matter as much. You&#39;re embedded within a team, within a project and within a department, which will protect you somewhat from being directly exposed to your impact on the company&#39;s bottom line. But the smaller the company the more directly the way in which you&#39;re contributing to the value that is being created by that company is noticeable. You&#39;ll feel it way quicker and more directed towards yourself if things are out of order if it happens to be cause by the way you work. In my case being called ineffective repeatedly over my first year at the new job was both shocking and accompanied by disbelief and dread. But I only needed to look at my estimates, the time it actually took to implement a feature and how many of the hours the company could actually charge the customer and compare that with my coworkers. The feedback was real and objective. It still took me almost a year to accept it.&lt;/p&gt;
&lt;p&gt;As you can imagine: Realizing that you&#39;re slow and ineffective had and still has all sorts of cascading side effects. I reexamine what I believe to know about myself and what I think is true about the nature of work and live in general. Contemplative sense-making has become more of an important part of a good live for me than the only way of being. I notice others that are slower and see companions. Like my barber, for example. And I appreciate that she takes her time. Whereas before I was sure that any criticism of a slow life is just an uninformed un-thought-through opinion, I now come to recognize - intellectually, if not yet experientially/emotionally - that you can maybe also want to be effective instead (or in addition). I still bristle at the insinuation that living an exploratory, tranquil live has anything to do with wasted effort, but I will have to somehow figure out a way to combine economical pressures with the qualities that make a live, no, &lt;em&gt;my live&lt;/em&gt;, worth living: Reflexion, focussed attention, taking my time, craftspersonship, exploration, deep understanding, empathy, diversity. I kind of still don&#39;t know what this all means.&lt;/p&gt;
&lt;p&gt;I&#39;m willing to find out, though. And what I do understand: That not being effective is what holds me back in my career, maybe in live. So I will have to go through this crucible. I am not making money in a contemplative career - I am no writer, academic, critic or whatever. So I can&#39;t just turn around and proclaim that a fiber of the reality I live in is somehow &amp;quot;wrong&amp;quot; as if there is a choice to be made by me. I may bring myself to call it a negative or bad aspect of a modern, digital, data-driven and market-oriented society, but this still means I&#39;ll have to live with it and master it to the best of my abilities.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Reflexions After Two Weeks Of Having Accepted My Ineffectiveness

        https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 954 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/04/dailydogo.html" />
      <updated>2024-07-04T06:54:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 954 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4f2b26f666254d179c7c24a793f81a2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 954 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 953 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/02/dailydogo.html" />
      <updated>2024-07-02T18:39:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 953 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ee97fa8faa2642baa19868f5e9418b41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 953 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 952 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/01/dailydogo.html" />
      <updated>2024-07-01T17:38:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 952 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/cc8797f1e23148869a3db49b70e33c63.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 952 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I have an iPhone XS...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/07/01/i-have-an.html" />
      <updated>2024-06-30T23:19:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/07/01/i-have-an.html</id>
      <content type="html">&lt;p&gt;I have an iPhone XS and am looking to upgrade soon-ish. What would be the best next iPhone for me? What would give me the best bang for the buck and which recent model is not worth the price?&lt;/p&gt;
&lt;p&gt;(iPhone XS 64 gb planning to get more storage)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I have an iPhone XS and am looking to upgrade soon-ish. What would be the best next iPhone for me? What would give me the best bang for the buck and which recent model is not worth the price? (iPhone XS 64 gb planning to get more storage)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 951 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/30/dailydogo.html" />
      <updated>2024-06-30T19:38:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 951 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/71cad5ed558a4a098aa11f13a0320d80.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 951 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 950 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/29/dailydogo.html" />
      <updated>2024-06-29T17:14:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 950 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8f3fc1487626473ab3d9701b04165840.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 950 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 949 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/28/230808.html" />
      <updated>2024-06-28T20:08:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/28/230808.html</id>
      <content type="html">&lt;p&gt;DailyDogo 949 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a30b413700a444bab6f55211477955ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 949 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 948 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/28/dailydogo.html" />
      <updated>2024-06-28T13:22:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 948 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/70c90666509e4034a539e44a9bf9d08d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 948 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 947 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/27/dailydogo.html" />
      <updated>2024-06-26T21:05:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 947 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/794aef59dc614a75927356fa4ea2acfe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 947 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 946 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/25/dailydogo.html" />
      <updated>2024-06-25T18:12:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 946 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c8abce593da94e1db2ebf442776cb275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 946 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 945 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/24/dailydogo.html" />
      <updated>2024-06-24T19:22:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 945 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d74f2d5f575b413bb9fe455688d90555.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 945 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 944 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/23/dailydogo.html" />
      <updated>2024-06-23T17:47:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 944 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0ff66a84f1ad42b291917edf03b6642c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 944 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Difference Between Productivity And Efficiency



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/23/daystooffload-difference-between.html" />
      <updated>2024-06-23T12:54:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/23/daystooffload-difference-between.html</id>
      <content type="html">&lt;p&gt;As I&#39;m trying to figure out how to become more efficient, I need to figure out what that even means, especially because efficiency can be easily confused with productivity. So let&#39;s have some term definitions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Productivity measures how high the volume of production in a given time frame is&lt;/li&gt;
&lt;li&gt;Efficiency measure the degree of avoidance of effort during production&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So productivity is about how much you can do in a given time and efficiency is about how to avoid extra steps and still get the same job done.&lt;/p&gt;
&lt;p&gt;Productivity can be a trap sometimes because it speeds us up to get more done, where a better way would be to do less without producing less output.&lt;/p&gt;
&lt;p&gt;In programming, we have two types of work: analytical and implementation work. I think that in both cases there are ways to limit the amount of unnecessary effort.&lt;/p&gt;
&lt;p&gt;If the work is analytical, the question is alway what do I need to know right now to make it work? Knowing a little too much about a given module without knowing it all, might make me want to change the code more than I need to. Instead, I should write down what I have learned in my notes system. &amp;quot;How to run the importer without downloading images&amp;quot; could be an example. I would want to know more than that, maybe also how to change the importer, so that it excepts a parameter to not having to monkey around in config files, but knowing where to go and what to comment out is enough and gets the job done.&lt;/p&gt;
&lt;p&gt;If the work is implementational (is that a word? now it is!), then there are many ways to exert extra effort: I could create new classes, interfaces, services, methods, refactor unwieldy code, add parameter and return types, make a piece of code behave more according to the architecture, add missing tests, ... the list is endless. So far I always looked for best practices within the company or outside the company if there was no consensus yet on how to do things. But best practices add up to become an endless list of what to do and how.&lt;/p&gt;
&lt;p&gt;This imagined list of things to do when touching or creating code can have a cascading effect, because change begets more change.&lt;/p&gt;
&lt;p&gt;I will have to keep my eyes open for things that I do that strictly speaking don&#39;t need to be done to be a more effective programmer.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Difference Between Productivity And Efficiency

        https://blog.martin-haehnel.de/2024/06/23/daystooffload-difference-between.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Hub &quot;Efficient Programming&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html" />
      <updated>2024-06-23T11:36:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-06-23 - Created this note&lt;/li&gt;
&lt;li&gt;2024-07-04 - Added &amp;quot;Reflexions After Two Weeks Of Having Accepted My Ineffectiveness&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;note&quot;&gt;Note&lt;/h2&gt;
&lt;p&gt;See &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Post Hubs&lt;/a&gt; for an explanation of these kind of posts.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The efficiency part is where my main problem lies: In order to deliver on time I will need to learn to cut corners and leave messy code as it is and even add my own mess on top of the rest at times.&lt;/p&gt;
&lt;p&gt;This doesn&#39;t seem to enable delivering greatness. After having read &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html&quot;&gt;Slow Productivity&lt;/a&gt; recently, that has a completely different philosophy about work - &amp;quot;do fewer things&amp;quot;, &amp;quot;work at a natural pace&amp;quot;, &amp;quot;obsess over quality&amp;quot; are its main points - this job stands at odds with this philosophy (that I am whole heartedly agree with).&lt;/p&gt;
&lt;p&gt;I now think that this is not the correct framing. It&#39;s reasonable to assume that I will work for the rest of my career in situations that demand - more or less - efficiency. &amp;quot;Delivering greatness&amp;quot;, in part, is about making it happen under economic constraints. Entrepreneur or salaried worker: This means that I need to be a good investment to be allowed to work on whatever I deem &amp;quot;high quality greatness&amp;quot;™.
— &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/22/quality-and-efficiency.html&quot;&gt;Quality And Efficiency&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This post was a first attempt at framing the problem of being an ineffective programmer. Before this one, I wrote a very emotional one that was mostly fueled by fear of getting fired for taking too long at work:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It sucks to admit, but I am pretty slow, when just measured on delivered features compared to many others. The main reason is that I am unable, maybe also unwilling, to &amp;quot;just deliver&amp;quot;.
— &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html&quot;&gt;Just Deliver&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am now trying to figure out what makes me inefficient and how I could become more efficient.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/how-i-have.html&quot;&gt;Categorizing Code Changes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/daystooffload-difference-between.html&quot;&gt;Difference Between Productivity And Efficiency&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After two weeks sitting with the problem I think my framing of overcoming my own ineffectiveness is correct: I will not be able to escape it and it&#39;s good to challenge myself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html&quot;&gt;Reflexions After Two Weeks Of Having Accepted My Ineffectiveness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Hub &quot;Efficient Programming&quot;

        https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Categorizing Code Changes



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/23/how-i-have.html" />
      <updated>2024-06-22T22:39:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/23/how-i-have.html</id>
      <content type="html">&lt;p&gt;In an effort to become more efficient, I wondered how I have tackled issues at work so far:&lt;/p&gt;
&lt;p&gt;Here&#39;s a little categorization of how I approach different kinds of code changes.&lt;/p&gt;
&lt;p&gt;(Disclosure: I don&#39;t do this literally, but intuitively ...)&lt;/p&gt;
&lt;p&gt;First, I ask myself if the change is trivial or not. Is it just something really small and contained, like changing a constant or what is returned from a method? Or a small visual change? This is so easy that I generally only do that change and nothing else. Maybe I add a type hint or update some kind of documentation if it exists. But that&#39;s it. Hard to get more efficient here.&lt;/p&gt;
&lt;p&gt;If the change is more complex, I subdivide this category immediately into two subtags: is it something entirely new or is it a substantial change of existing code.&lt;/p&gt;
&lt;p&gt;What makes these two cases different is the kind of analysis (and implementation; see below) I&#39;m doing. If it&#39;s new stuff, I try to imagine what a good, modern, sustainably maintainable version of the app or website I&#39;m working on might be in general. What would be a good, extendable starting point? Very often the tech stack is set, but the question becomes how to use what is given in the intended/best™ way.&lt;/p&gt;
&lt;p&gt;For example I recently was asked to implement a CRUD-App as part of the admin interface of a website. After some probing on what the appropriate tech stack might look like - since I hadn&#39;t yet done a greenfield implementation in this project - I knew what tech stack template to fill out. I decided what layers I needed, what build system to use for the frontend, how to bundle the backend code, how to test the code and how to run those tests in a pipeline on push. Some of these things were realized easily, others took longer, for some of them I had ideas for what modern best practices looked like, for others I had to research them. Because the system this crud app was a part of monolithic &amp;quot;portlet&amp;quot; system that subdivides the contents of a page into reusable widgets, we had to take this into account, even though we didn&#39;t need that much complexity. In the end, I built a relatively modern portlet-compatible crud app. While implementing the core features I learned more about the entities we were dealing with and how they connected to the rest of the website, which meant doing revisions of the main model a bunch of times and it turned out that the JavaScript module had to be relatively complex because we wanted some interactivity that I knew about but hadn&#39;t thought about hard enough beforehand. So yeah. Lots of extra work upfront to make working with this crud app nicer later and a good amount of revisions during the main implementation phase of the mvp to fulfill the architectural and quality criteria I had set for myself.&lt;/p&gt;
&lt;p&gt;If it&#39;s a complex code change the cuts across lots of different already existing modules or classes, the question is more how we can make these classes friendlier to accept change in the future in general and how my changes could be implemented in such a way that they themselves can be changed easily. So not only the integration code but also the feature code should be extendable, readable and hopefully easier to reason about after I touched it.&lt;/p&gt;
&lt;p&gt;Another task I had was to repair and update a multi-tenant system&#39;s copy tenant functionality. This was a complex task that cut through a big chunk of code. It was extra complex because the legacy system had some quirks you needed to know about and was very hard to test, because some of the classes were autogenerated and copying a tenant took minutes to complete. After a long and sometimes arduous process of trying to understand how the system worked and how its data was organized, I reimplemented the copy tenant functionality that had previously been based on copying its mostly hierarchical data on assumptions that didn&#39;t hold true anymore, so that it would not presume things that would lead to broken tenants, fixed a handful of bugs and unexpected behaviors on the way, but also made sure that the button &amp;quot;copy tenant&amp;quot; basically did what it did before, only now finally correctly. I&#39;m not going to lie: I had tons of help to accomplish this herculean task and it&#39;s not humility that makes me give credit for most of the actual implementation in the end to one of my lead programmers. Big chunks of time were spent understanding the legacy code, figuring out where it went wrong and figuring out where and how to put the corrected code in a mostly non invasive way.&lt;/p&gt;
&lt;p&gt;So both kinds of complex change consisted of chunks of implementation and blocks of analysis. Both types had some work that was extra in some way. So let&#39;s look at the details of that.&lt;/p&gt;
&lt;p&gt;The implementation of new software consists of creating lots of new files, folders and &amp;quot;hooks&amp;quot; that connect the new to the old. We can always immediately work within best practices: Clear separation of concerns, no spaghetti code, native type hints throughout and tests from the start to name just a few.&lt;/p&gt;
&lt;p&gt;Implementation blocks in already existing code of varying degrees of decay is different. We talk about refactoring and just making a sensible &amp;quot;hole&amp;quot;, for us to fill with new features. We may need to change what a method returns, introduce a new service, rework an existing class, by adding properties, methods or making it conform to a new interface to make it more easily replaceable, change were business logic is located, accessed, or what it decides in what way. There are many ways to work with existing code. Some of them are about making the aforementioned hole for our new logic and some of them are about making it easier to comprehend the legacy code. I have yet to work in a project that actually took the time to do systematic refactoring that goes beyond just making a thing work. It&#39;s all rather piecemeal.&lt;/p&gt;
&lt;p&gt;The analysis parts are also pretty different: The new stuff consists mostly of understanding the modern best practices in the context of the concrete implementation I&#39;m supposed to do. How does Vite want me to work? How does a modern Symfony bundle look? Should models have fluent setters/getters? Should models be immutable? Many of these kinds of questions are about how to bring ideal conditions into my concrete implementation. On top of best practice questions are questions about how things work. Like Vite for example. It took me some time to figure out how Vite&#39;s library mode actually worked. How Vitest worked. How and why modern Symfony bundle practices wouldn&#39;t work within the context of our legacy system, etc. The last example is also a good example of how we have to figure out how these best practices and technology options out there in the world actually map onto our concrete case. Because sometimes they don&#39;t and we have to figure what that means for the project.&lt;/p&gt;
&lt;p&gt;Analysis of old code often means just groking what it does and how it can be changed. If you know nothing like I did when I started working on the copy tenant functionality you may need to figure out the bigger picture as well as the details of the thing you&#39;re actually supposed to change. This has many dimensions to it. From guessing intentions of programmers that came before me, over parsing of algorithms and business logic, following call stacks and simply figuring out where to look to understanding the data that flows through a given system, there is always a lot going on.&lt;/p&gt;
&lt;p&gt;When it comes to complex changes especially, but also trivial ones can exhibit this, there is always an amount of extra work involved. This extra work might be part of the analysis blocks or part of the implementation blocks.&lt;/p&gt;
&lt;p&gt;This extra work could be adding a code quality tool. Or it could be cleaning up a a method, while making sense of it. Or it could be taking the time to really get into understanding the details of how validation is done. Some of this extra work makes essential work easier. Most of it makes the essential work more fun, I find.&lt;/p&gt;
&lt;p&gt;Analyzed like this it becomes more clear to me, that part of my problem of being inefficient is that I enjoy the extra work and that I am kind of stubbornly hoping when embarking on a new programming adventure that the extra work could be my main work. In other words: I am behaving irrationally!&lt;/p&gt;
&lt;p&gt;Going forward I&#39;ll have to limit the amount of extra work I do (e.g. less fucking around). That has to be part of the solution. Another point is that figuring out what to do and not fucking around and explore has been traditionally hard for me. I think (hope) that writing things down in a composable way using my trusty notes system will help me figuring out things faster, since I will be able to rediscover what I already figured out before.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Categorizing Code Changes

        https://blog.martin-haehnel.de/2024/06/23/how-i-have.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 943 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/22/dailydogo.html" />
      <updated>2024-06-22T17:53:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 943 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf002153bfc44ac983d5619ea26d673e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 943 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100daysToOffload Quality And Efficiency



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/22/quality-and-efficiency.html" />
      <updated>2024-06-22T10:08:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/22/quality-and-efficiency.html</id>
      <content type="html">&lt;p&gt;What does it mean to do well at work? As far as I can tell, it means that you do the work reliably and do it quickly (or rather: efficiently) and do it in a appropriately qualitative way. For programmers that means delivering features, preferably within the given estimate (allowing for some margin of error and the ocasional outlier).&lt;/p&gt;
&lt;p&gt;So: Reliability, efficiency and quality is what can be used to judge a programmer. If would need to judge myself, I think I have the quality part nailed down. I am not afraid to tackle structural problems in a legacy system, do refactorings and take the time to remove technical debt. However it&#39;s the other two parts that I&#39;m lacking.&lt;/p&gt;
&lt;p&gt;The reliability part - meaning that I deliver consistently - is not as problematic than the efficiency part. This translates to me being able to deliver the same high quality in the same inefficient manner.&lt;/p&gt;
&lt;p&gt;The efficiency part is where my main problem lies: In order to deliver on time I will need to learn to cut corners and leave messy code as it is and even add my own mess on top of the rest at times.&lt;/p&gt;
&lt;p&gt;This doesn&#39;t seem to enable delivering greatness. After having read &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html&quot;&gt;Slow Productivity&lt;/a&gt; recently, that has a completely different philosophy about work - &amp;quot;do fewer things&amp;quot;, &amp;quot;work at a natural pace&amp;quot;, &amp;quot;obsess over quality&amp;quot; are its main points - this job stands at odds with this philosophy (that I am whole heartedly agree with).&lt;/p&gt;
&lt;p&gt;I now think that this is not the correct framing. It&#39;s reasonable to assume that I will work for the rest of my career in situations that demand - more or less - efficiency. &amp;quot;Delivering greatness&amp;quot;, in part, is about making it happen under economic constraints. Entrepreneur or salaried worker: This means that I need to be a good investment to be allowed to work on whatever I deem &amp;quot;high quality greatness&amp;quot;™.&lt;/p&gt;
&lt;p&gt;I&#39;ll have to learn to actually make hard decisions, because I will need to make more trade-offs. I will need to get an intuition for when I can cut corners, what corners can be cut, the different ways in which corners can be cut, how to argue about corners and trade-offs and so much more.&lt;/p&gt;
&lt;p&gt;If you&#39;re just looking at it from a &amp;quot;best practice, always&amp;quot; standpoint, these things seem not necessary to consider, but I&#39;m now convinced that it&#39;s actually efficiency + quality more than quality on its own that could bring me to the next level in my career.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100daysToOffload Quality And Efficiency

        https://blog.martin-haehnel.de/2024/06/22/quality-and-efficiency.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 942 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/21/200554.html" />
      <updated>2024-06-21T17:05:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/21/200554.html</id>
      <content type="html">&lt;p&gt;DailyDogo 942 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/453eb757c6de4c609fc8c22496514742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 942 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 941 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/21/110026.html" />
      <updated>2024-06-21T08:00:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/21/110026.html</id>
      <content type="html">&lt;p&gt;DailyDogo 941 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1cce63877c6845c19e364b6a8d548e44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 941 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 940 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/21/dailydogo.html" />
      <updated>2024-06-21T07:59:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 940 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/99285a1e920a43baa3c6f4747a3e06d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 940 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Stressful week at...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/20/stressful-week-at.html" />
      <updated>2024-06-19T21:18:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/20/stressful-week-at.html</id>
      <content type="html">&lt;p&gt;Stressful week at work. &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html&quot;&gt;I wrote an emotional post last Friday&lt;/a&gt; about some of my worries. Finally some relief today. I too have still to learn and will make mistakes. And learning is not a linear process. But knowing that my employer hass my back made me realize how much of my worries were not real.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Stressful week at work. I wrote an emotional post last Friday about some of my worries. Finally some relief today. I too have still to learn and will make mistakes. And learning is not a linear process. But knowing that my employer hass my back made me realize how much of my worries were not real.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 939 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/19/dailydogo.html" />
      <updated>2024-06-19T20:13:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 939 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d87c4e8085943e080d1323b64d13087.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 939 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 938 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/18/dailydogo.html" />
      <updated>2024-06-18T20:07:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 938 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9cc6628e4428489a8a036435ebb75582.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 938 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 937 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/17/dailydogo.html" />
      <updated>2024-06-17T18:01:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 937 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ed8fb708173f407f93ff2f80dba6597d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 937 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 936 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/16/dailydogo.html" />
      <updated>2024-06-16T20:30:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 936 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc5f8e6aab7246adb3161d0f821bf90c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 936 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 935 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/15/dailydogo.html" />
      <updated>2024-06-15T20:19:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 935 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4467e226c820480bacf383c2dff206d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 935 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Just Deliver



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html" />
      <updated>2024-06-15T00:02:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html</id>
      <content type="html">&lt;p&gt;I had a hard day at work. It was hard, because I ended a streak of about three days, in which I was unable to work productively and today was the day in which I finally had to &amp;quot;show my work&amp;quot;. And then nobody saw my work. But now it&#39;s lying there, out in the open, awaiting feedback. And I have to go into the weekend with a feeling of dread.&lt;/p&gt;
&lt;p&gt;I&#39;m a programmer by trade and a slow, but hard-working, explorative kind of person in general. I love to find out how things work, how they maybe could work better and how to make a system such that it can communicate well with the people maintaining it. Which means that I&#39;d rather spend weeks reworking a legacy system, improving its workings and reorganizing and tidying up its architecture than implementing new features. So I like to do the work that is most often appreciated by other programmers - on a good day (most often people will not really notice ... until they do). Keeping a system in good working order. Like a well oiled machine. Notice that end users or features are not necessarily part of that. It&#39;s not like features are uninteresting or unimportant to me, but the &lt;em&gt;how&lt;/em&gt; and the &lt;em&gt;why&lt;/em&gt; matter to me a whole lot more. Especially the how.&lt;/p&gt;
&lt;p&gt;However. Because I get payed for features or bug fixes on features and not for refactoring, removing technical debt or thinking about software architecture, I am not the best programmer for the kinds of tasks my company offers, sometimes, I&#39;m afraid. It sucks to admit, but I am pretty slow, when just measured on delivered features compared to many others. The main reason is that I am unable, maybe also unwilling, to &amp;quot;just deliver&amp;quot;.&lt;/p&gt;
&lt;p&gt;I assume that being able to &amp;quot;just deliver&amp;quot; - meaning without refactorings (e.g. to make especially gnarly code comprehensible for me and future programmers) or enhancements of the project&#39;s setup (e.g. to configure an autoload feature as I needed to do today) - is the result of either not seeing the problems (e.g. maybe not being as experienced, yet) or being experienced enough to not care about the problems anymore (e.g. maybe by having had to navigate some portion of legacy code so often, that they just know where to look without the need to make the code more comprehensible).&lt;/p&gt;
&lt;p&gt;But I see it everywhere at my work: The people who are good enough to be hired permanently (which I was, too, somehow …) all seem to possess something I don&#39;t. I hesitate to call it more experience or talent. Which is not to say that I am perfect. I do readily admit that I totally have blind spots. And even where I feel confident, I know that I could still learn a lot more. And I also admit that my values are sometimes at odds with what is the bread and butter of my job: just deliver features. On time. Without too much back and forth, in acceptable quality (but nothing more, since nobody is able or willing to pay for it).&lt;/p&gt;
&lt;p&gt;So what is it then that makes my colleagues better at this? I think it is a willingness to not care as much. That&#39;s the &amp;quot;just&amp;quot; part of the &amp;quot;just deliver&amp;quot; motto. I don&#39;t mean that derogatory, even though it sounds like it at first. If you are able to not care about technical purity you may be able to deliver faster. You may be able to overlook a less than ideal implementation to have a working version earlier - which can be a good thing.&lt;/p&gt;
&lt;p&gt;Apart from being less concerned about technical quality, I think there is a certain soberness in most of my colleagues. No matter how difficult some code may be to read or how tight a ticket&#39;s allowed time budget may be, they seem to be able to not need to reinvent how to do things all the time - like I seem to. They can keep their powder dry. They do not need to go over the top, whereas I seem to go over the top by the drop of a hat. &lt;em&gt;Maybe&lt;/em&gt; a reason for this is differences in personality type, sure. But I think that it might also be a difference in &lt;em&gt;approach&lt;/em&gt;, which is much more interesting, because I might learn to incorporate that approach.&lt;/p&gt;
&lt;p&gt;I think the soberness comes from having somehow learned to respect lines in the sand. Like today (Friday), when I had to hand in part of a feature and a whole lot of refactoring and general enhancements of a new (to me) project that I was introduced to on Wednesday. Another programmer would have not done that. They would have been able to not even seriously contemplate the possibility to do what I did. They would have done a more minimal job, probably cursed a lot, probably complained a lot, but they wouldn&#39;t have spent the better part of three working days delivering two thirds of a feature that was supposed to take around two hours. All the while having to come up with justifications to do so.&lt;/p&gt;
&lt;p&gt;So yeah. Other people don&#39;t do that. As much. I&#39;m sure this is a spectrum rather than just extreme me vs. moderate everyone else. That I&#39;m so dismayed by this, is that I might also be considered too old to not have yet learned this already (I&#39;m 37, with more than 5 years of work experience). In one word: I might be too expensive, if I don&#39;t learn to bend a lot more. And quick. That&#39;s enough to make me feel bad. Since it&#39;s the weekend without any feedback coming my way until Monday, the bad feeling is mixed with anxiety.&lt;/p&gt;
&lt;p&gt;I can&#39;t really tell how bad it is this time. With the recent worsening of the IT job market and the general worsening state of the economy, I&#39;m extremely unsure of what to expect if this problem continues of worsens over the next 6 month, let&#39;s say. I feel like wasting almost three days after having been repeatedly told since I have been part of the company to pick up the pace (not in so many words, but basically that), be more pragmatic and trying to make smarter choices about which way to take to deliver solutions, I feel pretty gloomy to be honest. I feel defeated by my personality in some ways. I don&#39;t know how long this can go well.&lt;/p&gt;
&lt;p&gt;I hope that I will catch myself in time, next time. And for the things that have already been done: I hope I find a way to navigate the probably coming, somewhat difficult discussions ahead. That includes discussions around basically ignoring what I was supposed to do for the last few days and booking my hours in sometimes questionable (if technically justifiable) ways.&lt;/p&gt;
&lt;p&gt;One silver lining: There is a chance that the extra work is welcomed after all. I might still be gently scolded, but in some ways taking the time to come up with a better solution and thinking long-term is almost always a positive, of course. So here&#39;s to hoping that the people paying me think so, too. Fingers crossed.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Just Deliver

        https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 934 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/14/dailydogo.html" />
      <updated>2024-06-14T20:02:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 934 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a0a70dd01de4f18b5065bf6419b2842.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 934 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 933 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/13/dailydogo.html" />
      <updated>2024-06-13T20:10:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 933 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/661b0f3d73c74cc38dacfebf49dc2b98.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 933 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 932 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/12/dailydogo.html" />
      <updated>2024-06-12T20:33:07Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 932 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9de4338e2d9f4736a7e1e023bde117ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 932 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 931 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/11/dailydogo.html" />
      <updated>2024-06-11T18:02:15Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 931 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ab4f9ccae94441a6b3efd0e33c9781c1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 931 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 930 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/10/dailydogo.html" />
      <updated>2024-06-10T17:16:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 930 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/545e6c215b414da0b773b1615e0dde68.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 930 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 929 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/09/211104.html" />
      <updated>2024-06-09T18:11:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/09/211104.html</id>
      <content type="html">&lt;p&gt;DailyDogo 929 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/95ab5ede88254db2aacb01d217c668bc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 929 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload End of the myth of rational public discourse - The example of climate change



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/09/daystooffload-end-of.html" />
      <updated>2024-06-09T11:07:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/09/daystooffload-end-of.html</id>
      <content type="html">&lt;p&gt;A couple more items that make it clear that climate change is not going to be stopped. National interests are more important than planetary problems.&lt;/p&gt;
&lt;p&gt;Here&#39;s Noah Smith with &lt;a href=&quot;https://www.noahpinion.blog/p/climate-is-just-one-piece-of-industrial&quot;&gt;a piece about climate change as the only policy goal and how viable that is&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;But despite what many of my friends and colleagues thought back in 2017, climate change is not actually the main reason for industrial policy, nor will it be going forward. And so they are shouting into the wind.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The main reasons for this are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;people are not moved enough to care about climate change to vote differently (in the US, but I&#39;d wager in Europe, too. They are for sure not willing to pay for it.)&lt;/li&gt;
&lt;li&gt;the green energy transition will come regardless of it not being the only priority (but I will add that the energy transition itself will not make climate change go away: yes, technological advances mean that switching to (mostly) solar + battery is going to happen, because its the cheapest way to produce electricity/power nowadays, but western countries are not the main polluters and even then everything that can be done is too little, too late. In a way the energy transition is almost decoupled from climate change. Taking the &lt;a href=&quot;https://economicsfromthetopdown.com/2024/05/18/a-tour-of-the-jevons-paradox-how-energy-efficiency-backfires/&quot;&gt;Jevons Paradox&lt;/a&gt; into account, we should expect more consumption and therefore more production, more use of resources and a bigger toll on the planet in the end.)&lt;/li&gt;
&lt;li&gt;national security and reindustrialization are more important than climate change and climate change needs to be an argument for this reindustrialization to make any waves at all (Security and reindustrialization mean bigger footprints, not smaller ones)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short: The changing world-political landscape makes it highly unlikely that rational arguments or strategic protests will persuade humans to change their ways (I think I&#39;m allowed to generalize here).&lt;/p&gt;
&lt;p&gt;And for individuals this means that we have to learn to live with ever hotter summers. As for example this professor expresses:&lt;/p&gt;
&lt;p&gt;— &lt;a href=&quot;https://www.youtube.com/watch?v=5Tdmxclj25k&quot;&gt;Youtube: Climate records keep getting shattered; expert says this is the new normal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So, yes. We can stop asking the question, how we can mobilize the public for climate change and against biodiversity loss and start asking the question how we can live in a world that is not going to bend to reason (at least at larger scales … I&#39;ll have to explain that soon in more detail).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload End of the myth of rational public discourse - The example of climate change

        https://blog.martin-haehnel.de/2024/06/09/daystooffload-end-of.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 928 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/09/dailydogo.html" />
      <updated>2024-06-08T21:21:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 928 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/38db7bf1a36044a28296ec9f15d8464b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 928 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload #Oulu - Appreciating historical monuments



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/08/daystooffload-oulu-appreciating.html" />
      <updated>2024-06-08T18:48:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/08/daystooffload-oulu-appreciating.html</id>
      <content type="html">&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A scenic photo featuring Napu the dog, standing on a cobblestone path under a flowering tree, with the Merikoski hydroelectric power plant&amp;amp;#39;s dam visible in the background. The scene includes a grassy area and a bench where two people are seated, enjoying the serene environment. The dam and surrounding nature are bathed in warm, late afternoon sunlight.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4273.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;We live in Oulu and Oulu is noteworthy in part because of the hydroelectric power plant that has changed the face of the City&#39;s river (called Oulujoki, literally Ouluriver). My partner and me, we talked about the dam a little while walking along the basin on top of the dam and it made me think that a monument like this is interesting because of its multi-facetedness:&lt;/p&gt;
&lt;p&gt;On the one hand, this hydroelectric power plant can - if the conditions are right - provide the city with about a third of the electricity needed in a year. It is therefore a marvel of engineering, and it doesn&#39;t need to burn anything to produce this energy. It can therefore be considered green energy. On the other hand, the power plant changed the face and course of the river forever and has had a not insignificant impact on the nature of the river.&lt;/p&gt;
&lt;p&gt;From an ecologist&#39;s perspective, hydroelectric power in general is somewhat questionable because of the large impact it has on ecosystems. The straightening of a river and the creation of a dam are the opposite of protecting valuable, one-of-a-kind river ecosystems. Oulu, for example, had great rapids before the hydropower plant was established that are now gone and gone for good. Its name, &amp;quot;Merikosken voimalaitos&amp;quot; which translates to &amp;quot;sea-rapids power plant&amp;quot;, still points to this legacy. We are not preserving the planet just for us, so if a power plant like this produces &amp;quot;green&amp;quot; electricity, what does that even mean? So we can continue business as usual? That seems counterproductive and naive to think about it so narrow-mindedly. From a historical perspective, a dam like the one regulating the river here in Oulu is a monument to historical development in general. I would like to believe that a plan to build a similar power plant would be considered differently, that we would employ a lighter touch to protect more of the original nature - if we would built it at all. But Oulu&#39;s power plant was built in 1940. And it seems appropriate to recognize that a decision like building this dam was made then within the historical context of 1940 and not today. We need to recognize that our views now are a response to developments of the past, which in turn were a response to past responses themselves.&lt;/p&gt;
&lt;p&gt;That doesn&#39;t mean we need to be apologetic about any and all past decisions, but at least from a distance, we can see that everything has historicity inscribed, which makes it possible to appreciate monuments like a dam with a historian&#39;s eye. Our current understanding is the result of collective missteps, conservative take-backs, and risky bets. It&#39;s the sum total of the mixed bags of everything humans have ever created.&lt;/p&gt;
&lt;p&gt;We infer what is new, correct and just (for now) from looking at the past in one way or another. A dam with its volatile meanings can be a bittersweet reminder and example of our situatedness in historical time and our transitoriness. We won&#39;t have the last word.&lt;/p&gt;
&lt;p&gt;But because of the possibility of watching a dam like this, we can realize the beauty of us being transients in time by recognizing its aesthetic merit. We can recognize that the dam and the park area around the dam - with all their marks of alien-seeming decision-making - can look beautiful and interesting because of this historicity.&lt;/p&gt;
&lt;p&gt;Appreciation for industrial monuments like this is possible without bracketing their ecological dimension, by including a historical dimension.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Source for the claims made about the power plant: &lt;a href=&quot;https://de.wikipedia.org/wiki/Oulujoki#Merikoski&quot;&gt;de.wikipedia.org/wiki/Oulu...&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload #Oulu - Appreciating historical monuments

        https://blog.martin-haehnel.de/2024/06/08/daystooffload-oulu-appreciating.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 927 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/07/dailydogo.html" />
      <updated>2024-06-07T17:22:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 927 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/02565935955c411bb4e0e3c48b6ddba2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 927 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 926 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/06/dailydogo.html" />
      <updated>2024-06-06T20:45:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 926 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3c4f34b4190347baa6b66cc80f3e74ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 926 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Just Say The Thing



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/06/daystooffload-just-say.html" />
      <updated>2024-06-06T14:08:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/06/daystooffload-just-say.html</id>
      <content type="html">&lt;p&gt;[I keep this nebolous for my own reasons. People in the know will know. Otherwise just take it as a general statement adding to my recent entanglement in the small web community I am a very small part of.]&lt;/p&gt;
&lt;p&gt;Gotta be honest: I feel insanely shitty about this whole mb and associated drama. I loved that mb timeline for a while (I was looking forward to using the new &lt;a href=&quot;https://www.reddit.com/r/macapps/comments/1bg7q9x/first_beta_of_reeders_successor_is_coming_this/&quot;&gt;Reeder Beta&lt;/a&gt; to finally have an app that has timeline sync…), and some (probably most) of the people there are decent people, but some of the responses of the main players in this drama here seem so &amp;quot;automatic&amp;quot;: like just taking the next step in a pre-choreographed dance or something. When you say something insensitive, you first deflect, then tell how you know how &amp;quot;feeling hurt&amp;quot; feels because of your past or whatever, too and then relativize what either you said or what others said. Finally you try to apologize without affirming the values of those you&#39;ve hurt. And then you move on.&lt;/p&gt;
&lt;p&gt;And me saying this about other people feels like I&#39;m being unfair. And maybe I am. I long for more complex takes and interpretations (there are always some, but I always would want more), and I would wish for people taking those takes to be inclusive and not to act obtuse. A take is a take. Complex or not.&lt;/p&gt;
&lt;p&gt;Complexity shouldn&#39;t be used as a shield.&lt;/p&gt;
&lt;p&gt;And if the take was deemed unacceptable and you are remorseful: Is it really so hard to express the problem explicitly? &amp;quot;I accept and welcome all people, trans (et al.) or not. I support LGBTQ+ people explicitly. I kind of forgot my privilege here.&amp;quot; or: &amp;quot;I may not have really thought about the whole OpenAI thing in terms of power relations. I should have not called anybody disagreeing with me part of an angry mob or extremists.&amp;quot;&lt;/p&gt;
&lt;p&gt;Granted, that might not work. But &lt;em&gt;I&lt;/em&gt; would&#39;ve liked to read it or hear it. I want to give people the benefit of the doubt because I hate conflict the most. I want harmony above all else. But there exists a paradox here: Am I willing to support - sight unseen - people who seem to care about pronouns so much, that they can&#39;t even be asked to put &amp;quot;he/him&amp;quot; in the box of a video game?&lt;/p&gt;
&lt;p&gt;I just so wish online discourse would not feel so &amp;quot;rehearsed&amp;quot; in this sense. But what am I even saying? Is real life that different? Isn&#39;t it also quite rehearsed? Am I expecting conservative people to not lose their minds when the topic of gender-affirming practices comes up, for example?&lt;/p&gt;
&lt;p&gt;Anything that is informal and breaks the pattern somewhat in the course of a conflict like this is good, I find:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;writing emails/ messaging in private&lt;/li&gt;
&lt;li&gt;apologizing in public and showing remorse (in general)&lt;/li&gt;
&lt;li&gt;using replies and comments to engage readers&lt;/li&gt;
&lt;li&gt;trying to actually connect with people through the internet, not in terms of values, but in terms of humanness&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;But: &lt;em&gt;I&lt;/em&gt; still want to hear you say the thing! Or express that you don&#39;t understand yet - this might mean others will stay mad until you understand, but &lt;em&gt;I&lt;/em&gt; would love to read that at least. Saying the thing is &lt;em&gt;not&lt;/em&gt; optional. Connecting in terms of humanness is &lt;em&gt;not&lt;/em&gt; a surrogate.&lt;/p&gt;
&lt;p&gt;I find it hard to believe in rational discourse at large for this and other reasons - if I even let myself dream that rational discourse could be a real thing. It seems like an unhelpful assumption even in the smallest of (online-)circles.&lt;/p&gt;
&lt;p&gt;P.S.: And I wish that there would be some good examples of reconciliation in online conflicts - if I am completely honest. In that sense, I agree with Jason Becker&#39;s &lt;a href=&quot;https://json.blog/2024/06/05/hurt-confrontation-stop.html&quot;&gt;post&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Just Say The Thing

        https://blog.martin-haehnel.de/2024/06/06/daystooffload-just-say.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 925 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/05/dailydogo.html" />
      <updated>2024-06-05T18:28:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 925 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/46f97048aac949eb9a679ce88bde92e9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 925 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload - Review: Cal Newport&#39;s &quot;Slow Productivity&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html" />
      <updated>2024-06-05T16:19:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html</id>
      <content type="html">&lt;p&gt;I like Cal Newport&#39;s writing - although the person itself is also slightly strange to me: who would mention Joe Rogan&#39;s mike choice as an example for something? In any case. Some good observations on the broken idea of measuring knowledge work productivity like assembly line productivity and fake bussyness.&lt;/p&gt;
&lt;p&gt;I noticed that he seems to like to read biographies of knowledge workers in a broad sense and mines them for examples to illustrate what to do or why some things are or need to be a certain way. I may have to try to read more biographies myself. &lt;a href=&quot;https://blog.martin-haehnel.de/2021/07/17/the-art-of.html&quot;&gt;I love memoirs as a genre&lt;/a&gt; (I should read more of them), but never gave biographies a chance - because I am kind of allergic to the exceptional in general (but super-curious about the mundane).&lt;/p&gt;
&lt;p&gt;The contents of the book are just confirming my feeling that slow and small is the future. As I express also in the end of this post &lt;a href=&quot;https://blog.martin-haehnel.de/2023/12/28/its-maybe-a.html&quot;&gt;here&lt;/a&gt;, for example:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[M]y own life’s plan: A (relatively) small but reflected life in the here and now is more rewarding, more livable, more rational, more emotionally honest and also more ethically sound, than any sweeping pronouncements of a “big life&amp;quot;™ could ever be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;My &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html&quot;&gt;recent personal manifesto&lt;/a&gt; was inspired in part by reading this book.&lt;/p&gt;
&lt;p&gt;It&#39;s a quick read (or listen, in my case), apart from the Joe Rogan thing (and it&#39;s not that that mike choice example was offensive, it just was weird and suggests maybe what podcasts Newport listens to? Maybe? Hopefully not? Hopefully not in earnest at least?) quite inoffensive.&lt;/p&gt;
&lt;p&gt;People who know Newport&#39;s books will most likely have heard many of those tips from him before, but the reframing in terms of slow productivity is interesting.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload - Review: Cal Newport&#39;s &quot;Slow Productivity&quot;

        https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 924 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/04/202841.html" />
      <updated>2024-06-04T17:28:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/04/202841.html</id>
      <content type="html">&lt;p&gt;DailyDogo 924 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e73604e363f148a7b87902c2c9255538.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 924 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 923 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/04/dailydogo.html" />
      <updated>2024-06-04T10:27:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 923 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/edc143f47a9e41c281600a0dd337499e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 923 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 922 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/02/dailydogo.html" />
      <updated>2024-06-02T19:17:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 922 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6286f57df46e4cffbc7d16dacf437567.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 922 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload - Overview



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/02/daystooffload-overview.html" />
      <updated>2024-06-01T23:29:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/02/daystooffload-overview.html</id>
      <content type="html">&lt;ul&gt;
&lt;li&gt;Last updated: 2024-07-04 - 18:40&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Similar to &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html&quot;&gt;my overview for the WeblogPoMo&lt;/a&gt;, here&#39;s one for #100DaysToOffload. I won&#39;t be adding all 365 days here, yet, but will add dates as I see fit.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-06-01 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html&quot;&gt;#100DaysToOffload Manifesto: Limiting Projects To Not Be Limited By Them&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-02 - #100DaysToOffload - Overview (this post)&lt;/li&gt;
&lt;li&gt;2024-06-03&lt;/li&gt;
&lt;li&gt;2024-06-04&lt;/li&gt;
&lt;li&gt;2024-06-05 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/05/daystooffload-review-cal.html&quot;&gt;#100DaysToOffload - Review: Cal Newport&#39;s &amp;quot;Slow Productivity&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-06 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/06/daystooffload-just-say.html&quot;&gt;#100DaysToOffload Just Say The Thing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-07&lt;/li&gt;
&lt;li&gt;2024-06-08&lt;/li&gt;
&lt;li&gt;2024-06-09 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/09/daystooffload-end-of.html&quot;&gt;#100DaysToOffload End of the myth of rational public discourse - The example of climate change&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-10&lt;/li&gt;
&lt;li&gt;2024-06-11&lt;/li&gt;
&lt;li&gt;2024-06-12&lt;/li&gt;
&lt;li&gt;2024-06-13&lt;/li&gt;
&lt;li&gt;2024-06-14&lt;/li&gt;
&lt;li&gt;2024-06-15 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/15/daystooffload-just-deliver.html&quot;&gt;#100DaysToOffload Just Deliver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-16&lt;/li&gt;
&lt;li&gt;2024-06-17&lt;/li&gt;
&lt;li&gt;2024-06-18&lt;/li&gt;
&lt;li&gt;2024-06-19&lt;/li&gt;
&lt;li&gt;2024-06-20&lt;/li&gt;
&lt;li&gt;2024-06-21&lt;/li&gt;
&lt;li&gt;2024-06-22 - &lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/22/quality-and-efficiency.html&quot;&gt;#100daysToOffload Quality And Efficiency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;2024-06-23
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/how-i-have.html&quot;&gt;#100DaysToOffload Categorizing Code Changes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html&quot;&gt;#100DaysToOffload Hub &amp;quot;Efficient Programming&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/daystooffload-difference-between.html&quot;&gt;#100DaysToOffload Difference Between Productivity And Efficiency&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-06-24&lt;/li&gt;
&lt;li&gt;2024-06-25&lt;/li&gt;
&lt;li&gt;2024-06-26&lt;/li&gt;
&lt;li&gt;2024-06-27&lt;/li&gt;
&lt;li&gt;2024-06-28&lt;/li&gt;
&lt;li&gt;2024-06-29&lt;/li&gt;
&lt;li&gt;2024-06-30&lt;/li&gt;
&lt;li&gt;2024-07-01&lt;/li&gt;
&lt;li&gt;2024-07-02&lt;/li&gt;
&lt;li&gt;2024-07-03&lt;/li&gt;
&lt;li&gt;2024-07-04
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/04/daystooffload-reflexions-after.html&quot;&gt;#100DaysToOffload Reflexions After Two Weeks Of Having Accepted My Ineffectiveness&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-07-05&lt;/li&gt;
&lt;li&gt;2024-07-06&lt;/li&gt;
&lt;li&gt;2024-07-07&lt;/li&gt;
&lt;li&gt;2024-07-08&lt;/li&gt;
&lt;li&gt;2024-07-09&lt;/li&gt;
&lt;li&gt;2024-07-10&lt;/li&gt;
&lt;li&gt;2024-07-11&lt;/li&gt;
&lt;li&gt;2024-07-12&lt;/li&gt;
&lt;li&gt;2024-07-13
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/07/13/daystooffload-i-thrive.html&quot;&gt;#100DaysToOffload I thrive in a low-tech environment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload - Overview

        https://blog.martin-haehnel.de/2024/06/02/daystooffload-overview.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 921 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/01/dailydogo.html" />
      <updated>2024-06-01T19:18:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 921 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c57c679e9ce47e2ac835aef28585196.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 921 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #100DaysToOffload Manifesto: Limiting Projects To Not Be Limited By Them



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html" />
      <updated>2024-06-01T14:43:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html</id>
      <content type="html">&lt;p&gt;(Having recently ranted &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html&quot;&gt;against Manifestos&lt;/a&gt;, I had a reason to formulate one of my own. I hope that this personal manifesto is more productive than something like the &lt;a href=&quot;https://humanewebmanifesto.com&quot;&gt;Manifesto for a Humane Web&lt;/a&gt; because it is only meant for me, actually includes the steps I&#39;ll take and doesn&#39;t need to scale in any way.)&lt;/p&gt;
&lt;p&gt;So, let&#39;s just start with the obvious: I&#39;m here to write and post dog pictures. I am a programmer with a background in the humanities. But I&#39;m unable to devote real time to any side projects apart from writing here. So I made a decision. No more projects. Actually: Way less projects.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html&quot;&gt;I had the idea to update my crossposting workflow&lt;/a&gt;: that&#39;s not going to happen&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/12/inspired-by-vincent.html&quot;&gt;I had the idea of developing my own blot.im inspired micro blog sync client&lt;/a&gt;: I am not going to pursue that any further&lt;/li&gt;
&lt;li&gt;I had the idea to develop a JavaScript-based DailyDogo viewing widget: I&#39;m sorry, but it ain&#39;t happening either&lt;/li&gt;
&lt;li&gt;I am not going to create Newsletters, Websites, Blogs, Courses, Apps, Extensions, Plugins, CLI-Tools, Videos, Podcasts, Streams or anything else that could be considered content. I will write here and in my notes system. What I will do on my blog is my public persona on the web and what I will write privately will help me realize my potential. The important part is the writing. Not so much the design of the website. I will let the latter go.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;I am going to write regularly in way that I find challenging and engaging. I will try to be vulnerable, I will try to not hide behind a veneer of safe agreeable stances and topics.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I will try to limit and down-size non-public personal projects and ongoing areas of responsibility as well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I am not going to implement &lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-im.html&quot;&gt;a manual notes and hightlights reviewing workflow&lt;/a&gt;: I just don&#39;t have time for that every week. I review what I review. Readwise saves the highlights I made to my notes system automatically. That ought to be enough.&lt;/li&gt;
&lt;li&gt;I am not going to commit to reading/listening to a certain amount of books this year: I read what I read.&lt;/li&gt;
&lt;li&gt;I am not going to track, measure, document, visualize, or overly plan my life anymore. My ToDo-List is simple. If I can&#39;t do what&#39;s on the list for the day without overwhelm, I will remove items until it has become manageable again).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;I am going to continue to write in private, incorporating my love for the abstract and trying to develop ideas and coming up with ways to live the small, slow life in a world that is on fire and probably will stay on fire for the rest of my lifetime.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I will try to embrace to do less things at work, too.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I am not going to see every opportunity for change in the company in general as a must-participate for me.&lt;/li&gt;
&lt;li&gt;I am not going to let technical purity concerns block me from doing a good job.&lt;/li&gt;
&lt;li&gt;I am not going to say yes per default to every challenge to my estimations and ways in which I&#39;m going to approach the task at hand either.&lt;/li&gt;
&lt;li&gt;I am not going to react immediately to any and every message in my work chat.&lt;/li&gt;
&lt;li&gt;I am not going to ignore my scheduled time blocks to do focussed work or anything else I had planned.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;I am going to try to hone my craft, with an eye for quality, architecture and pragmatic professionalism. I am going to take advantage of the 4 hours per week that I am supposed to be able to use for learning and growing as a programmer.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #100DaysToOffload Manifesto: Limiting Projects To Not Be Limited By Them

        https://blog.martin-haehnel.de/2024/06/01/daystooffload-manifesto-limiting.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good Bye #WeblogPoMo2024 and Hello #100DaysToOffload!



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/06/01/good-bye-weblogpomo.html" />
      <updated>2024-06-01T14:40:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/06/01/good-bye-weblogpomo.html</id>
      <content type="html">&lt;p&gt;I said &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/12/weblogpomo-days-to.html&quot;&gt;here&lt;/a&gt; that I might want to continue with writing 100 real blog posts (with a title, etc.) in a year and so let&#39;s kick it off!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/07/weblogpomo-starting-late.html&quot;&gt;WebLogPoMo&lt;/a&gt; has shown me that having a reason to blog is a great way to get back into blogging. I mean, &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html&quot;&gt;look at all these posts that may never have been published&lt;/a&gt; without this. So let&#39;s continue and keep up the momentum!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://100daystooffload.com&quot;&gt;Website for 100 Days To Offload&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Good Bye #WeblogPoMo2024 and Hello #100DaysToOffload!

        https://blog.martin-haehnel.de/2024/06/01/good-bye-weblogpomo.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 920 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/31/234308.html" />
      <updated>2024-05-31T20:43:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/31/234308.html</id>
      <content type="html">&lt;p&gt;DailyDogo 920 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e651165c4b1b4e2cb4f0933cd78f72de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 920 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hub &quot;The Fatalistic Turn&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html" />
      <updated>2024-05-31T17:09:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-05-31 - Created this note&lt;/li&gt;
&lt;li&gt;2024-06-09 - Added a post &amp;quot;End of the myth of rational public discourse - The example of climate change&amp;quot;&lt;/li&gt;
&lt;li&gt;2024-10-30 - Added a post about an Essay by Andrew Dana Hudson suggesting that dreaming about space is not dead, but has to change and incorporate the current situation&lt;/li&gt;
&lt;li&gt;2024-11-23 - Added an observation about swiftness or quickness as annoying to me, because I only believe in slow change&lt;/li&gt;
&lt;li&gt;2024-11-25 - Added another non-acceptance answer to the turn: Fuck You Optimism&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;See &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/post-hubs.html&quot;&gt;Post Hubs&lt;/a&gt; for an explanation of these kind of posts.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;All this is to say that: We will have to live with it. We will have to accept climate change. We won&#39;t be able to stop the catastrophe. All the displaced people. All the pain and suffering. All the biodiversity loss.&lt;/p&gt;
&lt;p&gt;What is interesting though, is that fossil fuels won&#39;t last forever and the world&#39;s overindulgence in a surplus of energy that is not bound to the solar energy system (as opposed to the fossil energy system that spurred much of industrialization) is inevitable. We will not live to see this, but we also won&#39;t stop the shit show until then. The planet will go through this. I don&#39;t see how it wouldn&#39;t.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/20/weblogpomo-the-fatalistic.html&quot;&gt;The Fatalistic Turn&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;The main article for this topic. It tries to give some reasons why we won&#39;t stop climate change. At all.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following are part of this thread in my thinking, either by being material for arguments within that main post or by using parts of that main post to argue in some way or another for or against something else.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html&quot;&gt;Thoughts on “Manifesto for a Humane Web”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;Vulnerable Thoughts Around LLMS and generative AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html&quot;&gt;Is There A 3,5% Rule For The Web?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html&quot;&gt;A Rational Case For Protest&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html&quot;&gt;Thoughts on “Takes spread like wildfire”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/09/daystooffload-end-of.html&quot;&gt;End of the myth of rational public discourse - The example of climate change&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An early example of my stance against hoping for large-scale change of society:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2021/09/30/problems-of-the.html&quot;&gt;Problems of the Social or Properties of the Social&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;non-acceptance-answers&quot;&gt;Non-Acceptance Answers&lt;/h3&gt;
&lt;h4 id=&quot;myth-making&quot;&gt;Myth Making&lt;/h4&gt;
&lt;p&gt;It seems to me that one way forward is taking a longe duree view and invest into myth making:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/10/30/loved-this-one.html&quot;&gt;An Updated Manifest Destiny - Or How Myth Making Might Intentionally Change The World After All &amp;lpar;Comment on Andrew Dana Hudson&amp;apos;s &amp;quot;Space is Dead&amp;period; Why Do We Keep Writing About It&amp;quest;&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;fuck-you-optimism&quot;&gt;Fuck You Optimism&lt;/h4&gt;
&lt;p&gt;Another option is a kind of optimism that is being optimistic in a way that is defiant, mad and basically saying &amp;quot;oh yeah?! well fuck you, I&#39;m gonna do this thing anyways!&amp;quot;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/25/things-are-inevitable.html&quot;&gt;Another non-acceptance answer to the fatalistic turn: Fuck You Optimism&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;urgency-fallacy&quot;&gt;Urgency Fallacy&lt;/h3&gt;
&lt;p&gt;I think because societal or even planetary change will come - if ever - only very slowly, that any insinuation that we have to act quickly and on a grand scale is an insult to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/22/will-discuss-our.html&quot;&gt;&amp;quot;[...]Activists of the alarmist school: There is no swift and holistic reform coming![...]&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Hub &quot;The Fatalistic Turn&quot;

        https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Post Hubs



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/31/post-hubs.html" />
      <updated>2024-05-31T16:58:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/31/post-hubs.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-05-31 - Created this note&lt;/li&gt;
&lt;li&gt;2024-11-04 - Added &amp;quot;Maintenance Romanticism&amp;quot; Hub&lt;/li&gt;
&lt;li&gt;2025-01-27 - Added &amp;quot;Setup&amp;quot; Hub&lt;/li&gt;
&lt;li&gt;2025-07-21 - Added &amp;quot;Lebenszyklus&amp;quot; Hub&lt;/li&gt;
&lt;li&gt;2025-09-01 - Added &amp;quot;AI and LLMs&amp;quot; Hub&lt;/li&gt;
&lt;li&gt;2025-10-17 - Added &amp;quot;The Internet Is Not A Person&amp;quot; Hub&lt;/li&gt;
&lt;li&gt;2025-10-18 - Added WhileDo. Also decided to change the naming scheme slightly as the quotes were breaking my &lt;a href=&quot;https://blog.martin-haehnel.de/2025/06/03/obsidian-templater-file-creation-template/&quot;&gt;templates&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&quot;note&quot;&gt;Note&lt;/h2&gt;
&lt;p&gt;A hub is a new idea of mine to resurface and connect my blog posts that more or less have something to do with a topic. I&#39;ll collect posts of mine - maybe posts of others? - that fit the topic of a hub.&lt;/p&gt;
&lt;p&gt;In comparison to a category or tag, a hub allows for giving some commentary and is supposed to grow and change over time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Similar concepts in the pkm space: MOC - Maps of Content&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;hubs&quot;&gt;Hubs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/hub-the-fatalistic.html&quot;&gt;Hub &amp;quot;The Fatalistic Turn&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/06/23/daystooffload-hub-efficient.html&quot;&gt;Hub &amp;quot;Efficient Programming&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/11/04/hub-maintenance-romanticsm.html&quot;&gt;Hub &amp;quot;Maintenance Romanticsm&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/27/hub-setup/&quot;&gt;Hub &amp;quot;Setup&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/posthub-lebenszyklus/&quot;&gt;Hub &amp;quot;Lebenszyklus&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/09/01/hub-ai-and-llms/&quot;&gt;Hub &amp;quot;AI and LLMs&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/17/hub-the-internet-is-not-a-person/&quot;&gt;Hub &amp;quot;The Internet Is Not A Person&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/18/hub-whiledo/&quot;&gt;Hub - WhileDo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/06/hub-selfhosting/&quot;&gt;Hub - SelfHosting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2026/01/21/hub-reading/&quot;&gt;Hub - Reading&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Post Hubs

        https://blog.martin-haehnel.de/2024/05/31/post-hubs.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Thoughts on &quot;I Like Your Blog If...&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/31/weblogpomo-thoughts-on.html" />
      <updated>2024-05-31T16:44:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/31/weblogpomo-thoughts-on.html</id>
      <content type="html">&lt;p&gt;I love &lt;a href=&quot;https://louplummer.lol/post/i-like-your-blog-if&quot;&gt;this post&lt;/a&gt; by Lou Plummer, especially this part spoke to me:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I like smart and smart-ass but not people who think themselves smarter than everyone else&lt;/strong&gt;
There are a few bloggers who consistently write about how dumb people are and it&#39;s a big old turn off. I like smart people. I like people smarter than me (not hard). I even like people with a smart ass sense of humor but I have worked for too long with stereotypical computer support people who think all end users are stupid and I&#39;m so very weary of that attitude. I think it&#39;s great to point out the misconceptions of others but it&#39;s boorish if that&#39;s the main thing someone writes about.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maybe because I&#39;m insanely self-conscious of what was my main output throughout the WeblogPoMo - mainly fatalistic and negative views on political change and some posts about an outburst of anger about a kind of naive take by my blog hoster on the whole OpenAI/Scarlett Johansson thing that I regret (my angry reply more than my more sober take later. I still think I have point, though), I also immediately thought: &amp;quot;for some people this could be me, maybe…&amp;quot;.&lt;/p&gt;
&lt;p&gt;Anyways. A great post that is well worth your time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Thoughts on &quot;I Like Your Blog If...&quot;

        https://blog.martin-haehnel.de/2024/05/31/weblogpomo-thoughts-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 919 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/31/dailydogo.html" />
      <updated>2024-05-31T08:13:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 919 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0150a7d7b3984dc19f9bb1b58766bb73.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 919 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPomo - Intentions Are A Lag Measure



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/30/weblogpomo-intentions-are.html" />
      <updated>2024-05-30T16:23:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/30/weblogpomo-intentions-are.html</id>
      <content type="html">&lt;blockquote class=&quot;quoteback&quot; data-title=&quot;&quot; data-author=&quot;matti&quot; data-avatar=&quot;https://micro.blog/matti/avatar.jpg&quot; cite=&quot;https://micro.blog/matti/38144245&quot;&gt;
&lt;p&gt;[...]&lt;/p&gt;
&lt;p&gt;The big question when it comes to shifts of society like you describe with your examples for me is always: How much can you actually do? My reflex is to say: Not much. Intentions are a lag measure. That doesn&#39;t mean we shouldn&#39;t support what we think is important to create the world we want to live in - even if it&#39;s only for our own sakes - and support the people and actions the seem to us necessary to make these things more likely, but I do think this stuff is merely necessary but not sufficient to change the course of the world at large. So we&#39;ll have to live within the world in which we live, warts and all.&lt;/p&gt;
&lt;p&gt;This implies to me that what follows from your observations is no ownership of cause and effect but recognition of our collective limitations. I don&#39;t think that we make actual choices in that way as you hope.&lt;/p&gt;
&lt;footer&gt;matti &lt;cite&gt;&lt;a href=&quot;https://micro.blog/matti/38144245&quot; class=&quot;u-in-reply-to&quot;&gt;https://micro.blog/matti/38144245&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://cdn.micro.blog/quoteback.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;I said this - slightly edited here for brevity since not everything is relevant - in a reply to Jason Becker under one of his posts and wanted to shortly explain what I mean by that.&lt;/p&gt;
&lt;p&gt;It seems relatively easy to fall victim to attribute to intent what is simply an expression of a system. Since we can&#39;t observe society as a whole we may think that there are intentions involved in the sense that you make a conscious choice to behave in one way or another - in this case it was about having the feeling of not being able to give a complex take because an audience nowadays demands a simple take - and any members of the audience as well as the one talking to said audience has lots of freedom in how to behave here. Rational discourse then can decide the best course of action. Critiques like this suggest that it could be different if we would just choose to behave differently (and here some good reasons for doing it or alternatively some bad reasons to no do the old thing anymore).&lt;/p&gt;
&lt;p&gt;Now, the text I replied to here is called &lt;a href=&quot;https://json.blog/2024/05/21/takes-spread-like.html&quot;&gt;Takes spread like wildfire&lt;/a&gt;. What I love most about this blog post - and &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html&quot;&gt;I commented on it before&lt;/a&gt; actually - is the title, because it doesn&#39;t assume that anybody is doing anything on purpose. It just happens. This I totally agree with.&lt;/p&gt;
&lt;p&gt;I&#39;m generally very interested in the make-do. As in: &amp;quot;I was made to do this&amp;quot;. As I don&#39;t assume intentions I also don&#39;t assume clear-cut flows of cause and effect. I believe in entanglement. Meaning: There are a million little things we are connected to - human as well as non-human actors - and all of these act as weights on our doing and being. In a sense we are these weights. Part of these weights are internal. I do think we have to assume consciousness. But internal or external weights: we are a &lt;em&gt;result&lt;/em&gt;. And if we are results then so are our actions. Except that our actions are not the result of us because we are just a part of the chain (or better: net) through which something like a society expresses and reproduces itself.&lt;/p&gt;
&lt;p&gt;As an individual that has the capability to learn and observe, we may never untangle any of the entanglements that surround us in real time. But: We may learn to readjust our internal weights, so to speak. And this in turn is observable by people who care. This will never be everyone. And even those who care may not be able to see. But there is a potential here, which lies in a convincing performance and not rational argument.&lt;/p&gt;
&lt;p&gt;Which is why I would say that performing a certain way of being is probably more likely - and let&#39;s be clear here: it is still far from a clear a-&amp;gt;b thing and not highly probable in the slightest - to inspire others to act with this new way of being in mind. What they do with it individually and as a collective is absolutely not in your hands, though.&lt;/p&gt;
&lt;p&gt;So if it is about subtle takes: Make them! Realize a person - make a person a reality - that makes interesting, subtle takes. They may spread. You may get critiqued. People may want simpler answers. If it is about politics they may sort you more to the right and less progressive than you&#39;d think. If you can&#39;t realize a person like that - because it might bring harm to people you care about - that is society protecting itself. Maybe make only some takes subtle that don&#39;t endanger what is vulnerable if a person like this would exist?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPomo - Intentions Are A Lag Measure

        https://blog.martin-haehnel.de/2024/05/30/weblogpomo-intentions-are.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 918 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/29/214621.html" />
      <updated>2024-05-29T18:46:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/29/214621.html</id>
      <content type="html">&lt;p&gt;DailyDogo 918 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6f48587b88194289a8670221733f323b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 918 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 917 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/29/dailydogo.html" />
      <updated>2024-05-28T21:44:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 917 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/172f0a7669604a7dbd17cbfb6559ccb3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 917 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 916 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/28/dailydogo.html" />
      <updated>2024-05-28T07:33:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 916 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a982cd31f82a41ceaf9a137f51316ca6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 916 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 915 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/26/205914.html" />
      <updated>2024-05-26T17:59:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/26/205914.html</id>
      <content type="html">&lt;p&gt;DailyDogo 915 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d048c3f89c854f80a0c1bfd74ae3c68a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 915 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 914 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/26/dailydogo.html" />
      <updated>2024-05-25T21:46:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 914 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ca4596638a2e4aaebd222bd9e4332d96.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 914 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Thoughts on CoreInt 600



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/26/weblogpomo-thoughts-on.html" />
      <updated>2024-05-25T21:41:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/26/weblogpomo-thoughts-on.html</id>
      <content type="html">&lt;p&gt;Listen to it &lt;a href=&quot;https://coreint.org/2024/05/episode-600-two-robots-talking-to-each-other/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The whole episode was about the recent OpenAI/Scarlett Johansson thing that blew up in Manton&#39;s face.&lt;/p&gt;
&lt;p&gt;I, by chance, was at the computer when it was published and curious as &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html&quot;&gt;my first take&lt;/a&gt; on why I was angry was muddled in said anger and so I listened to this immediately. I found it very interesting and very &lt;em&gt;human&lt;/em&gt; (in a good way). A little protocol of mostly Manton&#39;s views:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;His initial take was: The sky voice was not intentionally ripping of Her.&lt;/li&gt;
&lt;li&gt;The response felt like: Some People were angry with him because he was defending a disgraced company.&lt;/li&gt;
&lt;li&gt;So to restate it: A plausible take was given.&lt;/li&gt;
&lt;li&gt;A tweet: &amp;quot;her&amp;quot;. He didn&#39;t even think when giving that take that the tweet could be about the voice per se.&lt;/li&gt;
&lt;li&gt;An interesting thought experiment: What if we&#39;re talking about a war criminal. What if they used a ridiculous weapon that doesn&#39;t exist to do their war crimes? If somebody claimed that. Shouldn&#39;t we able to say they did not use a ridiculous weapon that doesn&#39;t exist?&lt;/li&gt;
&lt;li&gt;And then: A news article seems to vindicate the plausible take.&lt;/li&gt;
&lt;li&gt;But then: Does the news article actually do that?&lt;/li&gt;
&lt;li&gt;And: There still might be a legal case. It seems very possible.&lt;/li&gt;
&lt;li&gt;A plea by the cohost: Give it some rest. It&#39;s not Manton you&#39;re blindly angry with.&lt;/li&gt;
&lt;li&gt;AI is here to stay: We have to engage with the technology.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think we&#39;re all still guessing and may never know. Depending on what we take into account, some things seem more plausible than others.&lt;/p&gt;
&lt;p&gt;I stand by my slightly more sophisticated way of putting it after I fired my first shot. I will give it another try here: Not taking into account what else is going on with that industry and that company in particular - their track record so far - and not taking into account how important a Sam Altman seems to think he is - right up in there with Dorsey and Musk as the co-hosts seem to agree - makes Manton&#39;s plausible take based on circumstantial evidence kind of less plausible (which also renders the thought experiment unsuitable). And I wouldn&#39;t want to have the feeling that the person behind my blog hoster is not seeing this quite plausible connection. Isn&#39;t there this saying &amp;quot;where there&#39;s smoke, there&#39;s fire&amp;quot;?&lt;/p&gt;
&lt;p&gt;So saying Manton makes me look bad &amp;quot;by association&amp;quot; is surely putting it way too strong. I will own that. But I will say that subsuming all the critical voices under the same umbrella seems inappropriate. I think - if we are fair to me and some others - that it seemed a little naive to &lt;em&gt;not think about the smoke&lt;/em&gt; and coincidentally call &lt;em&gt;everybody else just other, less rational, angry people&lt;/em&gt; (or at least strongly implying it) and not at least contemplating the possibility of a backlash.&lt;/p&gt;
&lt;p&gt;Alright. That has been said. Uff.&lt;/p&gt;
&lt;p&gt;I also want to say, candidly, I do &lt;em&gt;love&lt;/em&gt; the idea of the &lt;a href=&quot;https://www.manton.org/2024/05/24/161419.html&quot;&gt;audio narration feature&lt;/a&gt; that seems to have come out of reflecting on this. &lt;em&gt;This&lt;/em&gt; is good. AI is indeed not going anywhere. And we may never fully reconcile our feelings about this issue. But that doesn&#39;t mean we need to not have human connections or aren&#39;t allowed to make the web feel better.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Thoughts on CoreInt 600

        https://blog.martin-haehnel.de/2024/05/26/weblogpomo-thoughts-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 913 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/25/dailydogo.html" />
      <updated>2024-05-24T21:55:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 913 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/42534497f4fd4f3c97b7d5fe9ed3aa3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 913 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Thoughts on &quot;Takes spread like wildfire&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html" />
      <updated>2024-05-24T07:06:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://json.blog/2024/05/21/takes-spread-like.html&quot;&gt;An interesting post by Jason&lt;/a&gt; related to my recent discussions of manifestos and the general trend towards simple moral purity based statements (check &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html&quot;&gt;this post&lt;/a&gt; and its links at the top if you&#39;re curios). Some excerpts from Jason&#39;s post:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Communities converge on an understanding of how they are supposed to feel about something very rapidly on the internet. It seems to take no time at all for influential voices to emphatically determine what views are Good and Right and what views are Wrong.[…]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;This is not all bad.[…]But it does mean that there are many things that are not safe to share. […] [You can&#39;t] “try out” an argument [anymore] or even an identity to see how it feels. […] It also means that sometimes when your peers and people you respect have all decided what the “right” view is, it’s very hard to comfortably express a less strident, more lukewarm, more timid, and possibly more complex or nuanced take, especially if you’re not ready, willing, and able to present a dissertation about your view point.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The way I’ve chosen to operate in this environment is to listen to the intensity of others. This almost always means one of two things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I will end up agreeing with them, but for various reasons, I need to listen more and more carefully to be convinced. My own mind and emotions take a lot more evidence to get to the same conclusion my peers made it to right away.&lt;/li&gt;
&lt;li&gt;Folks are jumping on a bandwagon and squashing nuances and loudly proclaiming the easy thing. Anything I add to the conversation will drain me of all kinds of energy, likely ending in the person I’m talking with claiming they held the same belief that I do the whole time.
In both of these cases, I don’t need to speak. I can just listen. And eventually, I can decide that if we’re not heading toward the first case, I can stop listening. I can just opt out. It’s not a conversation, it’s a signaling competition.&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like this, even though I have my gripes with some of this. Not all of my notes are direct responses to Jason, but general thoughts to an imagined reader that tries to understand the implications of a post like this.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Trying on arguments and personas can be a highly questionable practice. People may get hurt. So the web today doesn&#39;t owe you this. Doing this is at least in some ways related to tricking people. But so is telling stories without disclosing you&#39;re telling stories, of course. I think it&#39;s possible to flag posts that do this as experimental thinking or whatever. See Maggie Appleton&#39;s &lt;a href=&quot;https://maggieappleton.com/epistemic-disclosure&quot;&gt;Epistemic Disclosure&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;More complex, subtle takes are not a problem in and of themselves, I&#39;d say. A richer description of a situation can be very interesting and enlightening. The problem is often not the complexity of a take, but the take. For example: I can write a complex text about my feelings around climate change in which I deny that there is trustable evidence that climate change is even a thing. The incendiary part of a take like this is its general thrust (for people who care about climate change). Also: Subtle takes don&#39;t magically free you from being misinterpreted/misrepresented either. Your text may end up being a completely reframed tool in somebody else&#39;s texts. You can&#39;t do anything against this. And you never could! But that is not a new development.&lt;/li&gt;
&lt;li&gt;Not knowing where you stand yet is generally fine and can be super interesting (because vulnerability is interesting), as long as some preconditions are met: You are not claiming to not know where you stand but actually just use it as a defense for a questionable position. Again, you can flag that stuff appropriately.&lt;/li&gt;
&lt;li&gt;As nobody owes you being okay with just letting you try out an opinion you actually don&#39;t hold on them, nobody owes you not being criticized for what you put out in the public. In the best case you&#39;re part of a community that will protect you and enforces a certain code of conduct and hopefully has values you can agree with, but the greater web doesn&#39;t work like that because it&#39;s basically social wilderness. That means the further your reach the more it is likely that you will encounter pushback.&lt;/li&gt;
&lt;li&gt;Everything&#39;s questionable. Using &amp;quot;The facts™&amp;quot; is often an attempt to state something as objectively as possible without realizing that its factualness is the result of negotiations. See Latour&#39;s Modalities for a great concept handle for this.&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Thoughts on &quot;Takes spread like wildfire&quot;

        https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 912 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/23/231640.html" />
      <updated>2024-05-23T20:16:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/23/231640.html</id>
      <content type="html">&lt;p&gt;DailyDogo 912 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/943ef5f8813242f3ad9cc151554c737a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 912 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 911 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/23/dailydogo.html" />
      <updated>2024-05-23T11:45:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 911 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/afabd0b7be88415ba792f65b61e8e1b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 911 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 By Association



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html" />
      <updated>2024-05-22T08:24:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html</id>
      <content type="html">&lt;p&gt;So Yesterday, shortly before bed, I got angry about what somebody else wrote on the internet.&lt;/p&gt;
&lt;blockquote class=&quot;quoteback&quot; data-title=&quot;&quot; data-author=&quot;matti&quot; data-avatar=&quot;https://micro.blog/matti/avatar.jpg&quot; cite=&quot;https://micro.blog/matti/37952561&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://micro.blog/manton&quot;&gt;[@manton](https://micro.blog/manton)&lt;/a&gt; This is such a bad take. Why do this? You make me as a mb user look bad by association. I get that you&#39;re trying to say that it was wrong and trying to say that people are emotional about this. But what you&#39;re also saying - inadvertently perhaps - is that Altman (et. al.) didn&#39;t do it on purpose, because he&#39;s obsessed with the movie Her and therefore people should have not freaked out or, if anything, freaked out earlier since that voice was already out there for a while?&lt;/p&gt;
&lt;p&gt;And what does it even mean to say that their account is not a total lie? Does it need to be a &lt;em&gt;total&lt;/em&gt; lie?&lt;/p&gt;
&lt;p&gt;Why protect a company and a CEO like this? I myself am using AI here and there and I think it is an interesting technology and probably here to stay (for better or worse), but there is no need for &quot;both-side-sing&quot; it here.&lt;/p&gt;
&lt;footer&gt;matti &lt;cite&gt;&lt;a href=&quot;https://micro.blog/matti/37952561&quot; class=&quot;u-in-reply-to&quot;&gt;https://micro.blog/matti/37952561&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://cdn.micro.blog/quoteback.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;This was a reply to a post by Manton - the person behind my blog hosting service Microblog:&lt;/p&gt;
&lt;blockquote class=&quot;quoteback&quot; data-title=&quot;&quot; data-author=&quot;manton&quot; data-avatar=&quot;https://micro.blog/manton/avatar.jpg&quot; cite=&quot;https://www.manton.org/2024/05/21/when-your-company.html&quot;&gt;&lt;p&gt;When your company becomes the enemy, all that matters to people is what &lt;em&gt;feels&lt;/em&gt; true. OpenAI’s Sky voice shipped months ago, not last week. We hear what we want to hear. OpenAI mishandled this, no question, but most likely Her is ingrained in Sam’s head vs. intentionally ripping off Scarlett.&lt;/p&gt;
&lt;footer&gt;manton &lt;cite&gt;&lt;a href=&quot;https://www.manton.org/2024/05/21/when-your-company.html&quot; class=&quot;u-in-reply-to&quot;&gt;https://www.manton.org/2024/05/21/when-your-company.html&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://cdn.micro.blog/quoteback.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;I had innocently scrolled through my Mastodon feed and saw a couple of posts scroll by:&lt;/p&gt;
&lt;iframe src=&quot;https://social.lol/@robb/112479532439276941/embed&quot; class=&quot;mastodon-embed&quot; style=&quot;max-width: 100%; border: 0&quot; width=&quot;400&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;script src=&quot;https://social.lol/embed.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
&lt;iframe src=&quot;https://toot.cafe/@baldur/112479789642168340/embed&quot; class=&quot;mastodon-embed&quot; style=&quot;max-width: 100%; border: 0&quot; width=&quot;400&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt;&lt;/iframe&gt;&lt;script src=&quot;https://toot.cafe/embed.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
&lt;p&gt;I am not above admitting that I got angry, in part, because other people got angry. Social media is a seductive medium. I was tired and it was easy to fire off a reply like the one I did. It felt righteous.&lt;/p&gt;
&lt;p&gt;Now, I had written very recently about my interest to not play this &amp;quot;moral purity&amp;quot;-based game anymore (not that I ever really played it, but that is besides the point), in which we proclaim a certain world view or stance as morally superior, avant-garde or whatever and start to judge what&#39;s happening in the world. My point with this was and is that we ought to construct and view - or at least make possible to trace - the complex network that makes up the state of any (local) reality in our moment in time. I want less reductionist views (although I freely admit that heuristics and simplifications and abstractions are important actors in a text and are not to be ignored either) and more connective tissue between manifesto-like expressions and details and steps on how to actually scale that for the planet or even &lt;em&gt;manifest it&lt;/em&gt; just for my local reality, here and now. I am a skeptical person and am always a little suspicious, if people proclaim stuff like &amp;quot;Just don&#39;t use AI!&amp;quot;, &amp;quot;Just don&#39;t fly!&amp;quot;, etc. because all this doesn&#39;t make sense if for example - I speak for myself - AI is helping me paper over gaps in my programming knowledge. I am dependent on the job I have so I better have some understanding of how to use this technology. When my boss says &amp;quot;your estimate is too high, ask ChatGPT how to do this and you&#39;ll be quicker…&amp;quot; I of course have a thousand counter arguments in my mind but in the end I am not studying philosophy, management theory, or whatever. I am employed as a programmer and am expected to do my work in a way that is (seemingly) most efficient. And I have to admit that AI &lt;em&gt;is&lt;/em&gt; actually helping me, too. I think. It&#39;s in any case an interesting technology that I should know how to use if I am to engage in meaningful discourse about it. So much so, that I am using these tools also in my free time here and there. I also happen to have family in Germany and am living in Finland. Therefore I &lt;em&gt;will&lt;/em&gt; fly more often than others (at least twice a year, probably) to see my family members.&lt;/p&gt;
&lt;p&gt;So I think I am allowed to say that &lt;em&gt;I get it&lt;/em&gt;. I get the need and the want to express something more complex than &amp;quot;Good is defined as X, you&#39;re not X therefore you&#39;re not good.&amp;quot;&lt;/p&gt;
&lt;p&gt;However, taking on more complexity when doing a take, does still not excuse you from also recognizing power structures. Many people are outraged over OpenAI&#39;s handling of a voice very similar to one that sounds like Scarlett Johansson&#39;s. I am not very hopeful that an investigation would ever conclusively show that OpenAI just cloned her voice or didn&#39;t employ a voice actor that sounds similar to her &lt;em&gt;because&lt;/em&gt; that person had a voice similar to Johansson&#39;s. But it seems questionable to not assume some form recklessness or even ill-intent here.&lt;/p&gt;
&lt;p&gt;People who have the bandwidth for it are worried and annoyed by tech bros and Big Tech. And often for good reasons. It&#39;s not like there is no evidence. They feel violated by them being invasive and exploitative. This is where most manifestos in this space come from, I bet. So a case like this - which to most people who can stomach engaging with this part of the AI hype is just another in a growing list - is to be taken seriously as a prime example of what people despise about companies behind AI.&lt;/p&gt;
&lt;p&gt;I am angry about posts like the one I replied to, because it gives more complex, maybe more subtle view points a bad reputation. I do not believe that more complex takes are created equal. But it can look that way sometimes, which is why complexity has become a watch word and moral purity so attractive. &amp;quot;Both-side-sing&amp;quot; is a terrible excuse for a careful, nuanced take, though.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 By Association

        https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 910 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/22/dailydogo.html" />
      <updated>2024-05-22T06:15:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 910 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4e39f594311349aea2dbb50c93586bf8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 910 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 909 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/20/231102.html" />
      <updated>2024-05-20T20:11:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/20/231102.html</id>
      <content type="html">&lt;p&gt;DailyDogo 909 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/eaa2e01864d14602a42caa2cc89dcbe3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 909 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - The Fatalistic Turn



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/20/weblogpomo-the-fatalistic.html" />
      <updated>2024-05-20T19:33:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/20/weblogpomo-the-fatalistic.html</id>
      <content type="html">&lt;p&gt;According to &lt;a href=&quot;https://www.theguardian.com/environment/article/2024/may/09/what-are-the-most-powerful-climate-actions-you-can-take&quot;&gt;this survey&lt;/a&gt; there is little hope, that individual actions can do anything apart from maybe raising awareness. The Guardian asked &amp;quot;every contactable lead author and review editor of reports by the Intergovernmental Panel on Climate Change since 2018, with 380 of 843 responding&amp;quot;. Here is what you can do according to the opinions of the world&#39;s climate scientists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;Most experts (76%) backed voting for politicians who pledge strong climate measures&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;The second choice for most effective individual action, according to the experts, was reducing flying and fossil-fuel powered transport in favour of electric and public transport. This was backed by 56%[…].&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;Almost 30% of the experts said eating less meat was the most effective climate action&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;a similar proportion [30%] backed cutting emissions from heating or cooling homes, by installing heat pumps, for example&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;Having fewer children was backed by 12% of the experts&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ugh. And there are these statements:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It can only go so far. Deep, rapid cuts in carbon emissions from oil and gas, as well as other sectors such as transport, are needed, which are outside the control of the average individual […] Individual action can only amount to a drop in the bucket – only systemic changes will be sufficient&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Many foresee catastrophic levels of global heating and are shifting their focus away from the physics of the climate system towards action that slows global heating and work that protects people against the climate impacts they now see as unstoppable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Another post I read recently was &lt;a href=&quot;https://economicsfromthetopdown.com/2024/05/18/a-tour-of-the-jevons-paradox-how-energy-efficiency-backfires/&quot;&gt;A Tour of the Jevons Paradox How Energy Efficiency Backfires&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In short, boosting efficiency seems like a straightforward way to reduce your use of natural resources. And for you personally, efficiency gains may do exactly that. But collectively, efficiency seems to have the opposite effect As technology gets more efficient, we tend to consume more resources. This backfire effect is known as the ‘Jevons paradox’, and it occurs for a simple reason. At a social level, efficiency is not a tool for conservation; it’s a catalyst for technological sprawl.1&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Here’s how it works. As technology gets more efficient, it cheapens the service that it provides. And when services get cheaper, we tend to use more of them. Hence, efficiency ends up catalyzing greater consumption.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Take the evolution of computers as an example. The first computers were room-sized machines that gulped power while doing snail-paced calculations. In contrast, modern computers deliver about a trillion times more computation for the same energy input. Now, in principle, we could have taken this trillion-fold efficiency improvement and reduced our computational energy budget by the same amount. But we didn’t.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It gets harder and harder to not talk about the planetary trajectory as set in stone. I guess it&#39;s good to have &lt;a href=&quot;https://sauropods.win/@futurebird/112472817592306868&quot;&gt;posts like this&lt;/a&gt; in your timeline?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The bald eagle could have easily gone extinct. But we did all sorts of &amp;quot;woke&amp;quot; things protecting it legally, ran conservation and study programs, banned DDT (that was good for other reasons too) and in 2007 they were removed from the endangered species list.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Likewise pine forests could be dead from acid rain.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The ozone could have a huge hole.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We CAN take care of nature when we want to. And the successes have been worth it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I feel like we forget this, you know?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Is it? What will it do? Hope is cheap. Change is impossible to envision. Especially if imagined as collective change on a planetary scale. Things will have to become &lt;em&gt;much&lt;/em&gt; worse before we can meaningfully engage with what happens. Maybe this is not &lt;em&gt;you&lt;/em&gt;, but it is us. You can warn and write all the manifestos you want, have a negative footprint or whatever: Just as with AI we&#39;ll have to come to terms with the fact that climate change is just us. We&#39;re the planet. And as the planet is the result and the cause of what&#39;s going on, the individual will have to recognize and come to terms with not being able to do a lot.&lt;/p&gt;
&lt;p&gt;There is hope in disruption. But strategically &amp;quot;weaponized&amp;quot; disruption (like calculated, non-violent &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html&quot;&gt;protest&lt;/a&gt;) can only do so much and it seems that big economic players like Big Tech™ to name an example are not even playing within the margins of democracy any more. Take this quote from &lt;a href=&quot;https://www.eff.org/deeplinks/2024/05/big-tech-eu-drop-dead&quot;&gt;a recent Cory Doctrow article&lt;/a&gt; on the EU&#39;s attempt to regulate tech giants via the DMA:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple appears to be playing a high-stakes game of chicken with EU regulators, effectively saying, “Yes, you have 500 million citizens, but we have three trillion dollars, so why should we listen to you?” […] Just like Apple, Meta is behaving as though the DMA permits it to carry on its worst behavior, with minor cosmetic tweaks around the margins. Just like Apple, Meta is daring the EU to enforce its democratically enacted laws, implicitly promising to pit its billions against Europe’s institutions to preserve its right to spy on us. […] Tech has found new ways to compromise our privacy rights, our labor rights, and our consumer rights - at scale. […] After decades of regulatory indifference to tech monopolization, competition authorities all over the world are taking on Big Tech. The DMA is by far the most muscular and ambitious salvo we’ve seen. […] Seen in that light, it’s no surprise that Big Tech is refusing to comply with the rules. If the EU successfully forces tech to play fair, it will serve as a starting gun for a global race to the top, in which tech’s ill-gotten gains - of data, power and money - will be returned to the users and workers from whom that treasure came.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Even if the DMA will be enforced completely and the EU won&#39;t let big companies weasel out of actually complying, I have very little hope that this game of resisting compliance and enacting policies is not continuing for the foreseeable future. Non compliance is surely not a phenomenon exclusive to Big Tech. Far from it. Which means that even if we get the right people to put policies into place to reign in companies this cat and mouse game is just going to make sure that climate change is even more of a sure thing.&lt;/p&gt;
&lt;p&gt;And what about all of the non-democratic societies? And what about all those non-environmental governments who do nothing? Can you solve a planetary problem while parts of the world are at war with each other? Or at least are ideologically opposed? What about China?&lt;/p&gt;
&lt;p&gt;I read &lt;a href=&quot;https://www.noahpinion.blog/p/the-big-tariffs-are-here&quot;&gt;an article by Noah Smith&lt;/a&gt; about the wider implications of the tariffs on Chinese electric vehicles the US have enacted. A couple of things form this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Joe Biden is about to slap 100% tariffs on Chinese-made electric vehicles. A 100% tariff is an absolutely huge tariff. It means that Chinese EV makers would have to sell their EVs in the U.S. at half the price of EVs manufactured elsewhere in order to be competitive. That just isn’t going to happen. A 100% tariff will probably be enough to keep essentially all made-in-China EVs out of the U.S.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And further, himself quoting David Fickling:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A lot of people are worried that tariffs like these will slow down the transition to a low-carbon future powered by solar power and batteries. For example, David Fickling writes:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;China’s widening lead in clean technology, coupled with its vast trade surplus…are combining with faltering efforts on decarbonization in developed countries to produce a toxic mix…If green technology such as electric vehicles…gets badged as foreign and threatening and finds itself excluded via…tariff policies, then drastically falling costs aren’t going to be enough to get it into the hands of consumers…An acceleration in trade wars will only slow our path to zero [carbon].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;He’s right to worry. Transportation is responsible for almost 30% of U.S. carbon emissions, or about 4% of the global total. If the U.S. failed to switch to EVs, it could hamper decarbonization efforts by a small but noticeable amount.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And a last one from this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The most important thing about these tariffs is probably the message they send. Protectionism is now the consensus economic policy of both major political parties in the United States. Biden has extended the Trump tariffs on China and levied the new EV tariffs; Trump is trying to one-up Biden by promising to raise the 100% tariffs to 200%, extend them to Mexico, and slap an additional 60% tariff on all Chinese-made goods. There is currently no major party or presidential candidate that you can vote for in America that is even remotely interested in free trade.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What I take from this is that the biggest economies are at a trade war with each other and it&#39;s about to get very ideological on planet earth again(?) - but not in an environmentally friendly ideological way we might hope for. Meaning that systematic improvements of the climate situation are completely unlikely. Because a climate neutral Europe won&#39;t be enough and itself utterly unlikely. I do not have hope for the rest of the planet.&lt;/p&gt;
&lt;p&gt;All this is to say that: We will have to live with it. We will have to accept climate change. We won&#39;t be able to stop the catastrophe. All the displaced people. All the pain and suffering. All the biodiversity loss.&lt;/p&gt;
&lt;p&gt;What is interesting though, is that fossil fuels won&#39;t last forever and the world&#39;s overindulgence in a surplus of energy that is not bound to the solar energy system (as opposed to the fossil energy system that spurred much of industrialization) is inevitable. We will not live to see this, but we also won&#39;t stop the shit show until then. The planet will go through this. I don&#39;t see how it wouldn&#39;t.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - The Fatalistic Turn

        https://blog.martin-haehnel.de/2024/05/20/weblogpomo-the-fatalistic.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 908 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/20/dailydogo.html" />
      <updated>2024-05-19T22:19:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 908 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00e8116349ba4603987733693fbf8c30.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 908 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 907 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/19/dailydogo.html" />
      <updated>2024-05-18T21:06:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 907 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e92e0efb874f4833b8bfb68e3283c0a9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 907 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - A Rational Case For Protest



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html" />
      <updated>2024-05-18T10:22:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html</id>
      <content type="html">&lt;p&gt;Having agreed to write more this month has produced a handful of posts that make me uncomfortable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/stubs/&quot;&gt;A Post about my gripes with exclusionary &amp;quot;Manifestos&amp;quot; that seem to mistake moral purity for a self selected avant-garde with carefully trying to integrate new actors like LLMs in our lives&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;A Post about my thoughts around LLMs that boils down to LLMs are here to stay&amp;comma; so we need actors that are interested in social justice&amp;comma; nature conservation&amp;comma; and so on to actively engage these things&amp;comma; to shape their future instead of turning away&amp;period;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html&quot;&gt;A Post about my doubts that the web is a society and therefore non-violent internet protests can work&amp;period;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all posts that make me uncomfortable because these are fluent thoughts that get more concrete the more I write. Today I wanted to add another point about (non-violent) protest.&lt;/p&gt;
&lt;p&gt;If you&#39;ve spent enough time in the social humanities, you will end up with a viewpoint that could be condensed down to &amp;quot;humans are gonna human&amp;quot;, meaning that intentional action very seldomly can be used as a starting point for analysis because either it is not visible to the observer, or intentions are getting displaced as soon as other actors are entangled. If that is true and it still seems possible to give good descriptions, maybe even explanations of change over time, of &amp;quot;why the things are the way they are&amp;quot; by completely excluding intentionality from the analysis, then it seems right to be very skeptical towards explanations that rely on private intentions being present to make sense of the world. You don&#39;t need to know the why of individuals to understand the why (or at least give a convincing description of the state of things at a given time) in a larger sense.&lt;/p&gt;
&lt;p&gt;Armed with this viewpoint it seems heartbreakingly obvious that protest can&#39;t work, because bigger more distributed powers shape society, if you like it or not.&lt;/p&gt;
&lt;p&gt;But. There is a case to be made for protest, if we don&#39;t assume protesting is meant to inform and convince the wider public to change their ways and join the protesters until the social pressure becomes so high that other people would be elected to the parliament that in turn would enact new policies.&lt;/p&gt;
&lt;p&gt;If we take as read that any protest would need enough active participants and sympathizers, why would you want to protest if not for convincing people? I found this great encapsulation in a &lt;a href=&quot;https://news.ycombinator.com/item?id=40379879&quot;&gt;Hacker News thread&lt;/a&gt; about the 3,5% rule:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Protests aren&#39;t intended to gain allies. It&#39;s to put pressure on those in charge. Pissing people off and interrupting commerce is literally the point.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Disruption is the point! It means that people will complain about the protestors. It means that the politicians in charge will be asked - sooner or later - to deal with the protestors and in its absolute form this can really only go three ways: 1.) The wish of the protestors is granted in some way or 2.) the state uses violence to end the protests. Either way the non-violent protestors keep the moral high ground. 3.) The third option is that the protest peters out, in which case the protest was not strong enough to begin with and not worth a potential conflict with the law. You really have to believe in what you believe (or at least make other people believe that you believe in what they believe) to spearhead a protest.&lt;/p&gt;
&lt;p&gt;So there you have it: A rational case for protest is about disruption not about convincing fellow citizens. You need allies to make enough of a fuss, but changing society has a lot less to do with convincing people and a lot more to do with strategically annoy them.&lt;/p&gt;
&lt;p&gt;What has this to do with not taking intentionalities into account? We can see that the mechanism of protest works even if people do not act strategically on purpose. All you need is the right strong convictions and the wish to disrupt people for disrespecting your values. If you as an individual realize that protest works like this or not is not important for it to work this way.&lt;/p&gt;
&lt;p&gt;So what about the other posts? I wonder if some problems in wanting to change the web through protest and activism can be attributed to there not being a need to understand the mechanism. You can disrupt parts of the web, but the web is not a society which means that platforms won&#39;t react in the same way - or at least they don&#39;t need to - because shutting down protests is so much easier: like &lt;a href=&quot;https://m.benui.ca/@ben/112396505994216742&quot;&gt;what recently happened&lt;/a&gt; on stack overflow:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Stack Overflow announced that they are partnering with OpenAI, so I tried to delete my highest-rated answers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Stack Overflow does not let you delete questions that have accepted answers and many upvotes because it would remove knowledge from the community.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;So instead I changed my highest-rated answers to a protest message.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Within an hour mods had changed the questions back and suspended my account for 7 days.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The web is not a democratic society so disrupting a platform will have a different result than disrupting society: Either nothing happens, the platform dies or you get banned. Note that these things seem similar to what I wrote above, but they are different. One way in which these are different is that a platform is not owned by its users. Another way they are different is that people in charge are not elected by its users. So the dynamic of pissing of fellow citizens, them complaining to politicians to end the disruption and the politicians having to decide to either answer with ethically questionable violence or by granting the wish to the protesters is not working in the same way. Users engage on platforms. Platforms have owners. And these owners may have share holders to answer to but share holders are not congruent with the users of said platforms. To make protest work you would need a meaningful amount of users be part owners of a platform. Or you need to protest in the context of your society, which would be my point to make here.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - A Rational Case For Protest

        https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 906 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/18/dailydogo.html" />
      <updated>2024-05-17T21:22:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 906 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/69cc067510dd414381c856e361a1e054.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 906 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Is There A 3,5% Rule For The Web?



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html" />
      <updated>2024-05-16T20:26:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Nonviolent protests are twice as likely to succeed as armed conflicts – and those engaging a threshold of 3.5% of the population have never failed to bring about change.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So claims &lt;a href=&quot;https://www.bbc.com/future/article/20190513-it-only-takes-35-of-people-to-change-the-world&quot;&gt;an article from the BBC&lt;/a&gt; from 2019. It refers to the research of Erica Chenoweth which in turn inspired the Extinction Rebellion group.&lt;/p&gt;
&lt;p&gt;I think there is hope in such research that seems to show that nonviolent activism that reached a relatively low threshold actually led to change. I say this, because I at least have a hard time believing protests do anything positive at all. Which is a sad and cynical take, I know. So reading this kind of stuff makes me skeptical, yes, but also hopeful, that there is something to it.&lt;/p&gt;
&lt;p&gt;In light of &lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;what I recently wrote about AI&lt;/a&gt;: That I don&#39;t think that LLMs are going anywhere, even if they are not going to fulfill their promise. And that we won&#39;t prevent their development by individual consumer choice. Which therefore means we should instead explore them carefully and with an eye for making them a part of our shared experience (by hopefully making them more sustainable (et. al.) and enacting policies towards this) instead of trying to look away and excluding them from intelligent and more complex discourse that tries to think a whole world - that, like it or not, includes AI and VCs and Techbros - no matter what our individual values might be.&lt;/p&gt;
&lt;p&gt;So in light of that I wonder what a &amp;quot;3,5% rule&amp;quot; for web discourse could look like. The truth is: I can&#39;t think of one. The Web and its visitors are not really a society or a nation state (or a union of such things) and therefore do not govern themselves. We are citizens of the web only in a very metaphorical way. The policies are enacted by governmental bodies like the EU. This makes me think that in order to change the web you need to change the society you&#39;re living in. Which means that a &amp;quot;3,5% rule&amp;quot; - if it exists - for the web would just be the &amp;quot;3,5% rule&amp;quot; for non digital societies.&lt;/p&gt;
&lt;p&gt;So activism of the web would necessarily need to interface with the physical world and non-violently protest its rampant development to become not much more than a collection of hellish and exploitative platforms owned by rich people that actively threaten any and all live on this planet by exploiting resources, exploiting people and undoing democratic progress everywhere.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Is There A 3,5% Rule For The Web?

        https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 905 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/16/dailydogo.html" />
      <updated>2024-05-16T18:30:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 905 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b8ad82f3dcd444caba4310b307510b14.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 905 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 904 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/15/dailydogo.html" />
      <updated>2024-05-15T19:18:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 904 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3e23bd80cf6a4056988de0082ccfda83.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 904 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 903 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/14/dailydogo.html" />
      <updated>2024-05-14T19:52:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 903 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e7504610e6ee44329332137fd0d6ead5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 903 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Vulnerable Thoughts Around LLMS and generative AI



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html" />
      <updated>2024-05-14T18:30:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html</id>
      <content type="html">&lt;p&gt;It makes me extremely uncomfortable to think in terms of ethics when it comes to generative AI. I would like to say that &lt;a href=&quot;https://www.baldurbjarnason.com/2024/you-should-not-be-using-llms/&quot;&gt;I am agreeing with Baldur Bjarnason on the matter&lt;/a&gt; and that there is actually nothing to discuss, but only to state that AI is unethical, unsustainable, un-researched and actively harmful to the planet and its inhabitants. It&#39;s also a &lt;a href=&quot;https://www.baldurbjarnason.com/2024/the-unsustainability-of-the-ai-bubble/&quot;&gt;bubble&lt;/a&gt; and can&#39;t deliver on its promise:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Found via a Reddit post about a WSJ article quoting a Sequioa presentation&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In a presentation earlier this month, the venture-capital firm Sequoia estimated that the AI industry spent $50 billion on the Nvidia chips used to train advanced AI models last year, but brought in only $3 billion in revenue.
This 17x number is just for chips – Nvidia chips alone, I think – so the actual cost-to-revenue multiplier is much higher in reality.
So the hardware it’s installed in and the actual CPUs are extra. Research is extra. The army of freelancers used for RLHF training are extra. Electricity cost is extra.
And chips depreciate in value pretty rapidly. Especially since every chip vendor on the planet has more specialised ML chips in the pipeline that are more effective at the task. This investment will be worthless pretty quickly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;But then … I am using it at work - where my employers pay for a pro version for us to use - and even in my free time I use it as my access to a more advanced version makes it more interesting to use and I&#39;m - as I am so often - caught up in a kind of fatalist argument, it seems: I do not see LLMs going away. Do I feel better for not using them? Only theoretically. I feel like I am learning things while I use them because there are actually wast swaths of what I am theoretically supposed to to be able to do at work that I can&#39;t do without a nudge here and there. Same is true in recreational programming.&lt;/p&gt;
&lt;p&gt;In theory I feel that keeping myself morally untouchable and staying &amp;quot;pure&amp;quot; is interesting, but just as I tried to express [when I was talking about manifestos](Thoughts on &amp;quot;Manifesto for a Humane Web&amp;quot;) and their harsh delineation between good and bad according to a standard they define without outlining the practical steps to make this a reality, I find myself reaching for the same here: Purity is theoretically interesting, but practically life happens elsewhere and so it is more a question of degree, if anything.&lt;/p&gt;
&lt;p&gt;I can&#39;t and won&#39;t deny the fact that I find these AI tools helpful and interesting, sometimes. I won&#39;t not agree either that they are also not unproblematic. However, I will say that excluding these things from your life - by individual consumer choice - doesn&#39;t do anything to make them do less harm, make them more sustainable or actually changing the practicalities of life. We have become very good at defining things in such an &amp;quot;either/or&amp;quot; way that it has become useless to apply these standards to any real life situation, where you may be forced, coerced or seduced into - for example - using these things. What now? Time to stop living? Time to apologize for the rest of your life? I think that we may have to relearn how to examine the world. Not in terms of purity of our actions, but in terms of the realization of the world we inhabit.&lt;/p&gt;
&lt;p&gt;This means manny big and small things. One small thing it means is to understand the relative limit any one&#39;s actions have on the whole. We are an expression of the whole, so not being able to change the whole is not THAT surprising, I&#39;d say. This also means that better understanding the whole - for example by examining the insane amounts of money and resources that are put into training, developing and serving these models to customers (like in the quote above) and how insanely powerless we as individuals are to change this - helps understanding us and our place int this world. Look, even in Europe - which I would only call a beacon of democracy by comparison to the alternatives out there - I do not foresee a sufficiently strict policy that would make LLMs impossible to deploy even though they are, in their current state, unethical in so many ways.&lt;/p&gt;
&lt;p&gt;But if this is the case … I think you ought to be able to examine what you&#39;re dealing with. I think people found always interesting what is problematic in one way or another. As far as I can tell LLMs and the whole field of commercial AI are no different. Does this give you card blanche to not care about any and all concerns around this? No. Does this mean you can&#39;t use those tools? I don&#39;t know, I tend to think the answer is no here, too.&lt;/p&gt;
&lt;p&gt;There are things that are tabus in society that you definitely, positively cannot find good and explore in the way I try to argue for here. You can&#39;t try on &amp;quot;slavery&amp;quot; or &amp;quot;naziism&amp;quot; for size, for example. But LLMs are not a tabu. They are problematic, sure, but they are not the same thing as those societal tabus. They may become one, we&#39;ll see. It follows that you may be interested in them as long as you stay mindful and open to what they may become. I would even say that it is important to stay engaged, because this also makes it possible to recognize what may be worth developing further.&lt;/p&gt;
&lt;p&gt;I guess what I&#39;m trying to argue for is: 1. LLMs are going to stick around. They may not fulfill their promise of becoming super intelligent conscious agents  - which is pretty unlikely and in any case prohibitively expensive and ruinous to our planet - but they are here to stay in some form or fashion. 2. Being interested in and using LLMs - even in your day to day life - won&#39;t change this, however it well give you a better idea of what LLMs are and what they can and can&#39;t do in an experiential sort of way that will absolutely change your perception of them. It&#39;s not wrong to be curious as long as you&#39;re cautious and recognize that you can&#39;t generalize your experience: You&#39;re not doing publishable research, you&#39;re finding out for yourself. 3. I find it MUCH more valuable to live in the uncomfortable truth that you as an &amp;quot;unpure&amp;quot; individual can only do so much, apart from being interested in what is going on and actually recognize and examine what makes existence so uncomfortable if you can&#39;t change what&#39;s happening, which is kind of contradictoriy. I want people to express this ambivalence and live in it, because most of us are simply unable to live purely for purity&#39;s sake.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Vulnerable Thoughts Around LLMS and generative AI

        https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Thoughts on &quot;Manifesto for a Humane Web&quot;



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html" />
      <updated>2024-05-13T19:18:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2025-10-28 - just a short note, that I included this post and some others in a note about &lt;a href=&quot;https://blog.martin-haehnel.de/2025/10/27/purity-based-argumentation/&quot;&gt;Purity Based Argumentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;The developer &lt;a href=&quot;https://michellebarker.co.uk&quot;&gt;Michelle Barker&lt;/a&gt; has published a very cool &lt;a href=&quot;https://humanewebmanifesto.com&quot;&gt;Manifesto for A Humane Web&lt;/a&gt; and I wanted to comment on it a little. I mostly wanted to point to some lines from Bruno Latour and his 2010 paper &lt;a href=&quot;http://www.bruno-latour.fr/sites/default/files/120-NLH-finalpdf.pdf&quot;&gt;An Attempt at a &amp;quot;Compositionist&amp;quot; Manifesto&lt;/a&gt; and comment on their implication for the Humane Web Manifesto, as far as I am interested in it here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I know full well that, just like the time of avant-gardes or that of the Great Frontier, the time of manifestos has long passed. Actually, it is the time of time that has passed: this strange idea of a vast army moving forward, preceded by the most daring innovators and thinkers, followed by a mass of slower and heavier crowds, while the rearguard of the most archaic, the most primitive, the most reactionary people trails behind[…]. During this recently defunct time of time, manifestos were like so many war cries intended to speed up the movement, ridicule the Philistines, castigate the reactionaries. This huge warlike narrative was predicated on the idea that the flow of time had one—and only one—inevitable and irreversible direction. The war waged by the avant-gardes would be won, no matter how many defeats they suffered. What this series of manifestos pointed to was the inevitable march of progress. So much so that these manifestos could be used like so many signposts to decide who was more “progressive” and who was more “reactionary.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And even though I love this text for it is a pretty good one, I will stop quoting after one more passage:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;And yet a manifesto might not be so useless at this point, making explicit (that is, manifest) a subtle but radical transformation in the definition of what it means to progress, that is, to process forward and meet new prospects. Not as a war cry for an avant-garde to move even further and faster ahead, but rather as a warning, a call to attention, so as to stop going further in the same way as before toward the future.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think that this understanding of what a manifesto could be in our modern world fits nicely to the way the web is going and how to proceed: Carefully and facing the future. With taking precautions and slowly. With an eye for a more &amp;quot;ecologist&amp;quot; web, that is with an eye for dependencies and conditions that make up diversity. I think this is a great framing for the humane web, because the categories used to frame this manifesto make clear what is needed for society of the web to make it in the wilderness that is the internet: &amp;quot;accessible&amp;quot;, &amp;quot;inclusive&amp;quot;, &amp;quot;safe&amp;quot;, &amp;quot;secure&amp;quot;, &amp;quot;sustainable&amp;quot;, &amp;quot;reliable&amp;quot;, &amp;quot;resilient&amp;quot;, &amp;quot;transparent&amp;quot;, &amp;quot;independent&amp;quot;, &amp;quot;human-centred&amp;quot;.&lt;/p&gt;
&lt;p&gt;I have some quibbles with some of the categories and especially coming from a Latourian actor-network perspective I find that using the term &amp;quot;society&amp;quot; (as in &amp;quot;Like a functioning society, we take what we need, and we contribute what we can. We are citizens of the web…&amp;quot;) would need to be qualified a little to make sure that we understand ourselves as makers being made by the web - which just means that tools have agency, too and that we have to lengthen our gaze a little past what we would traditionally call society. There is more involved.&lt;/p&gt;
&lt;p&gt;About those categories I will only note one more thing before trying to express what I would&#39;ve like to see more of. This point is that instead of &amp;quot;independent&amp;quot; I would have chosen the word interdependent. And instead of &amp;quot;human-centred&amp;quot; I would have chosen &amp;quot;un-centered&amp;quot; or &amp;quot;distributed&amp;quot;. But let&#39;s not get lost in the weeds.&lt;/p&gt;
&lt;p&gt;I know that this manifesto is very much of its time and reacts to platformism, late capitalism and the threat of &amp;quot;Big AI&amp;quot;. But I think it is important to realize that the society of the web needs to be assembled slowly, carefully, facing the complexities ahead by remaking - I would say - what here &amp;amp; now means, by taking more time examining what lies before us.&lt;/p&gt;
&lt;p&gt;Sounds nebolous? But questions like the following arise from this stance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;How exactly are we going to think of a web society?&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;How can an individual take meaningful steps?&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;What does it mean to not filter out by categories, those who are &amp;quot;un-progressive&amp;quot; or &amp;quot;progressive with an asterisk&amp;quot; but to describe a prospective future?&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;What series of steps can be taken as an assembly of actors (a team, a company, a neighborhood)?&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;What is implied by the difference of being un/humane? Are those who are humane able to sustain themselves in any way? How? Can we separate them from the un-humane ones? How? Is this a stable difference? Who differentiates?&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think the most understandable way I can put this - because I get annoyed by the way I have to express this as well, a little: If this manifesto and &lt;a href=&quot;https://www.sustainablewebmanifesto.com&quot;&gt;others like it that it links to&lt;/a&gt; point at something, is this something served by the playbook of exclusion/inclusion, sorting and filtering out? I imagine that whatever the humane web could be, it would express itself less in terms of framing out what it is not by underlining what it is, but by exploring what would make it possible to exist at all. What are the technologies, processes, organizational forms, ways of observing, tending to, maintaining, caring for and negotiating that could make a different web? This also implies what can stay - I assume the underwater cables, the http protocol can stay, CSS can stay, but what else? Do we &lt;em&gt;know&lt;/em&gt; the web that is?&lt;/p&gt;
&lt;p&gt;I&#39;m all for binding those &amp;quot;How?&amp;quot;s I would have liked to hear more about to a higher order thinking, but I am not so interested to be sorted into good or bad by adhering to either all of the categories or none, without being told what is needed to even make one of these categories a real thing on a planetary scale (is that the goal?) and what is done to make it worth it to try for that.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Thoughts on &quot;Manifesto for a Humane Web&quot;

        https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 902 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/13/dailydogo.html" />
      <updated>2024-05-13T17:01:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 902 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9997a70861ed47e48066a7d20b329b12.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 902 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 901 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/12/dailydogo.html" />
      <updated>2024-05-12T19:10:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 901 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1f9486cc72634acc8093d8ae81c20f0d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 901 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - 100 Days To Offload Next?



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/12/weblogpomo-days-to.html" />
      <updated>2024-05-12T10:15:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/12/weblogpomo-days-to.html</id>
      <content type="html">&lt;p&gt;I need more reasons to blog regularly. Can we have a &lt;a href=&quot;https://weblog.anniegreens.lol/weblog-posting-month-2024&quot;&gt;WeblogPoMo&lt;/a&gt; every month? I have not been as engaged with my own blog in at least three months. It may not look like much, but I think that having an excuse to publish and work on the blog is awesome because the slight social pressure helps me build some momentum and get back to posting regularly. And then I noticed this sentence under &amp;quot;Inspiration&amp;quot; of the WeblogPoMo page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am also (selfishly) prepping myself to get back into a daily blogging habit so I can complete Kev Quirk&#39;s 100 Days To Offload within the next year.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So what is &lt;a href=&quot;https://100daystooffload.com&quot;&gt;100 Day To Offload&lt;/a&gt;?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The whole point of #100DaysToOffload is to challenge you to publish 100 posts on your personal blog in a year.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I guess I know what I&#39;m doing next.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - 100 Days To Offload Next?

        https://blog.martin-haehnel.de/2024/05/12/weblogpomo-days-to.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 900 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/11/dailydogo.html" />
      <updated>2024-05-11T20:11:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 900 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3439e10c442540999aee3d6e0ed875a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 900 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 Apple Music&#39;s Create Station Is Actually Pretty Good



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/11/weblogpomo-apple-musics.html" />
      <updated>2024-05-11T09:43:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/11/weblogpomo-apple-musics.html</id>
      <content type="html">&lt;p&gt;I do not have great needs when it comes to my music streaming service:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I want (most) of the music that I know and love available to me&lt;/li&gt;
&lt;li&gt;I want to be able to manage owned music and want it to integrate with the streaming offering&lt;/li&gt;
&lt;li&gt;I want to be able to find new music that I actually like&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I struggled especially with the last part until a few days ago, but I can now say, that &lt;strong&gt;picking a song I like at the moment and use the create station command is pretty good&lt;/strong&gt;! It might be just my imagination, but I think that this generates better, more relevant song lists than using Autoplay when running out of music in a playlist, listening to the radio, or listening to their curated playlists (personalized or not). All of the other stuff doesn&#39;t really work for me. But this does. So it may be worth a try.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 Apple Music&#39;s Create Station Is Actually Pretty Good

        https://blog.martin-haehnel.de/2024/05/11/weblogpomo-apple-musics.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024  - Overview



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html" />
      <updated>2024-05-11T08:24:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html</id>
      <content type="html">&lt;ul&gt;
&lt;li&gt;Last updated: 2024-05-14 - 21:32&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More for me than anyone else: Here are my posts for the WeblogPoMo2024.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-05-01&lt;/li&gt;
&lt;li&gt;2024-05-02&lt;/li&gt;
&lt;li&gt;2024-05-03&lt;/li&gt;
&lt;li&gt;2024-05-04&lt;/li&gt;
&lt;li&gt;2024-05-05&lt;/li&gt;
&lt;li&gt;2024-05-06&lt;/li&gt;
&lt;li&gt;2024-05-07
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/07/weblogpomo-starting-late.html&quot;&gt;#WeblogPoMo2024 - Starting late doesn&#39;t mean not doing the thing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html&quot;&gt;A New Cross-Posting Workflow, Part 1: Requirements And Thoughts On Implementation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-08
&lt;ul&gt;
&lt;li&gt;[#WeblogPoMo2024 Feeling At Home In The Abstract (From Theory To Programming)](#WeblogPoMo2024 Feeling At Home In The Abstract (From Theory To Programming))&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-09&lt;/li&gt;
&lt;li&gt;2024-05-10&lt;/li&gt;
&lt;li&gt;2024-05-11
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html&quot;&gt;#WeblogPoMo2024  - Overview&lt;/a&gt; (this post)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/11/weblogpomo-apple-musics.html&quot;&gt;#WeblogPoMo2024 Apple Music&#39;s Create Station Is Actually Pretty Good&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-12
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/12/weblogpomo-days-to.html&quot;&gt;#WeblogPoMo2024 - 100 Days To Offload Next?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-13
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/13/weblogpomo-thoughts-on.html&quot;&gt;#WeblogPoMo2024 - Thoughts on &amp;quot;Manifesto for a Humane Web&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-14
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/14/weblogpomo-vulnerable-thoughts.html&quot;&gt;#WeblogPoMo2024 - Vulnerable Thoughts Around LLMS and generative AI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-15&lt;/li&gt;
&lt;li&gt;2024-05-16
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/16/weblogpomo-ist-there.html&quot;&gt;#WeblogPoMo2024 - Is There A 3,5% Rule For The Web?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-17&lt;/li&gt;
&lt;li&gt;2024-05-18
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/18/weblogpomo-a-rational.html&quot;&gt;#WeblogPoMo2024 - A Rational Case For Protest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-19&lt;/li&gt;
&lt;li&gt;2024-05-20
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/20/weblogpomo-the-fatalistic.html&quot;&gt;#WeblogPoMo2024 - The Fatalistic Turn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-21&lt;/li&gt;
&lt;li&gt;2024-05-22
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/22/weblogpomo-by-association.html&quot;&gt;#WeblogPoMo2024 By Association&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-23&lt;/li&gt;
&lt;li&gt;2024-05-24
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/24/weblogpomo-thoughts-on.html&quot;&gt;#WeblogPoMo2024 - Thoughts on &amp;quot;Takes spread like wildfire&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-25&lt;/li&gt;
&lt;li&gt;2024-05-26
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/26/weblogpomo-thoughts-on.html&quot;&gt;#WeblogPoMo2024 - Thoughts on CoreInt 600&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-27&lt;/li&gt;
&lt;li&gt;2024-05-28&lt;/li&gt;
&lt;li&gt;2024-05-29&lt;/li&gt;
&lt;li&gt;2024-05-30
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/30/weblogpomo-intentions-are.html&quot;&gt;#WeblogPomo - Intentions Are A Lag Measure&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2024-05-31
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/05/31/weblogpomo-thoughts-on.html&quot;&gt;#WeblogPoMo2024 - Thoughts on &amp;quot;I Like Your Blog If...&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Total: 16 Posts&lt;/strong&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024  - Overview

        https://blog.martin-haehnel.de/2024/05/11/weblogpomo-overview.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Just fucking...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/10/just-fucking-disgusting.html" />
      <updated>2024-05-10T07:57:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/10/just-fucking-disgusting.html</id>
      <content type="html">&lt;p&gt;Just fucking disgusting…&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/adb35bf657.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Just fucking disgusting…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Just… disgusting…
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/10/just-disgusting.html" />
      <updated>2024-05-10T07:55:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/10/just-disgusting.html</id>
      <content type="html">&lt;p&gt;Just… disgusting…&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9e2b0819a3.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Just… disgusting…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 899 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/09/dailydogo.html" />
      <updated>2024-05-09T19:15:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 899 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/926e7ca8aa75460cac298c599a43f5cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 899 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 Feeling At Home In The Abstract (From Theory To Programming)



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/08/weblogpomo-feeling-at.html" />
      <updated>2024-05-08T20:25:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/08/weblogpomo-feeling-at.html</id>
      <content type="html">&lt;p&gt;Why am I such bad photographer? Why do I not care about such things? Why am I so bad ad drawing? Why do I not have the patience for that? Why do I not try to create things that are trying to be optically pleasing? Why do I not create sculpture? Or handcrafts? Why am I not?&lt;/p&gt;
&lt;p&gt;There are obvious answers. Talent would be one. Laziness an other. From the obvious ones, I like to think that I employ my creativity more and better in the abstract. Earlier in my life, I would have said that historical epistemology, sociological systems theory and actor-network theory would have been my playing fields. Nowadays it&#39;s software architecture and software development. And I guess essayistic journaling. Ruminating on things, how they could fit. Thinking about thinking and writing about writing. It&#39;s thinking and writing. But it&#39;s not beautiful writing. If it&#39;s that, it&#39;s kind of accidental on purpose, maybe. But not in English. It&#39;s mostly functional, because my voice won&#39;t come out as easily in English as it does in German. Which is not even always a bad thing.&lt;/p&gt;
&lt;p&gt;I sometimes long for being able to write about mundane things like how does it feel to live in a different country (notice, that I didn&#39;t say Finland; I immediately went abstract abain…), for example? Or being in an international relationship, or whatever? I force myself to write about this stuff sometimes, because I want to preserve a kind of &lt;a href=&quot;https://blog.martin-haehnel.de/categories/year-in-review/&quot;&gt;public record of the years I went through&lt;/a&gt;, but I ordinarily would write about more abstract things.&lt;/p&gt;
&lt;p&gt;I do notice that a lot of my abstract thinking has either become private and found a place in my notes app, instead of my blog, or has become purely thinking because my life is so full of stuff and non-abstract life that I can&#39;t indulge in this kind of stuff too much. But what am I even saying. Even if I don&#39;t get to spend all of my time thinking about the act of writing-thinking in the abstract, my life is still full of the abstract: Because I&#39;m a programmer and the act of programming is at its root a work of abstracting. This way of abstracting just feels much more concrete to me nowadays. It also doesn&#39;t feel as explorative, because in the end I am supposed to abstract for money, meaning I am supposed to create, to produce really, business value with my work.&lt;/p&gt;
&lt;p&gt;I recently learned an interesting thing about my inclination for abstraction: It wants to be explorative. I think I&#39;m doing my best creative work, when I can look at a legacy body of work - this could be an abstract published text, or a legacy code base - and am allowed to take my time with said body of work. The notion of refactoring comes to mind: In programming this is defined as a behavior preserving code change. This enables the restructuring and renewing of legacy code bases. Something similar could maybe be claimed for often times unwieldy abstract texts, too. I am able to dissect them and reassemble them. So that I can explain them, use parts of them, recombine them, take parts of them and combine them with other parts from other texts and be innovative with them. At least &lt;em&gt;for me&lt;/em&gt; I can do that pretty well. The opportunity to do anything with that &amp;quot;in the open&amp;quot; has kind of passed though. I do not envision myself publishing many papers about new aspects of actor-network theory, for example. I do envision myself using this muscle to become pretty good at thinking about the craft of programming, though. I am happy to say that I get payed for spending about 8 hours a day writing and thinking about code. Most of this is relatively mundane web development in a more or less proprietary legacy framework, but even then it lets me imagine and sometimes even actually do some applied creative abstract thinking.&lt;/p&gt;
&lt;p&gt;And that&#39;s awesome and interesting to me. And I want to become better at it, I want to do more of it and I want to be able to take on more responsibility so that I may contribute wider reaching solutions to this code base of ours, so that others can use and appreciate them. I feel in this way I am not, nor was I ever, that different from creatives that work within a less abstract medium.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 Feeling At Home In The Abstract (From Theory To Programming)

        https://blog.martin-haehnel.de/2024/05/08/weblogpomo-feeling-at.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 898 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/08/dailydogo.html" />
      <updated>2024-05-08T18:51:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 898 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5eeb7ff85aa94c85bf4c1c6d6e0f6ba4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 898 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          For a second I had...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/07/for-a-second.html" />
      <updated>2024-05-07T19:46:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/07/for-a-second.html</id>
      <content type="html">&lt;p&gt;For a second I had hopes that the iPad event would be interesting. I was hoping for mac apps on the iPad - or even a full fledged macOs. But nope…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        For a second I had hopes that the iPad event would be interesting. I was hoping for mac apps on the iPad - or even a full fledged macOs. But nope…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A New Cross-Posting Workflow, Part 1: Requirements And Thoughts On Implementation



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html" />
      <updated>2024-05-07T18:50:11Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-05-07 - Created this note&lt;/li&gt;
&lt;li&gt;2024-05-20 - Added a note that I&#39;m unable to do this at this point in time&lt;/li&gt;
&lt;li&gt;2025-02-01 - Added proper changelog and message box to this post (the post itself is probably deprecated in its current state, as I &lt;a href=&quot;https://blog.martin-haehnel.de/blog/2025/01/26/micro-blog-migration/&quot;&gt;migrated away from micro.blog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;2025-05-04 - Fixed a couple of typos&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;div class=&quot;message-box&quot;&gt;&lt;p&gt;I have decided that I do not have enough time to devote to this project at this time, however I would really like it and it was good to think this through for when I am able to pick it up)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;You know what I don&#39;t like about my blog? The way it crossposts to other services. Micro.blog&#39;s understanding of cross-posting is as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Micro.blog cross-posting copies your posts from this feed to external services automatically when you post to your blog.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Which is not what I want. I would like it to work more in this way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Blog posts (with our without title) should be shared automatically on &lt;a href=&quot;https://social.lol/@matti&quot;&gt;my Mastodon account&lt;/a&gt; with a proper link, maybe an applicable hashtag. But it should be clear that I&#39;m sharing a blog post, which is not the same as writing a toot and that difference shouldn&#39;t therefore be invisible by just tooting the same content 1:1 as I posted on my blog&lt;/li&gt;
&lt;li&gt;An exception are the &lt;a href=&quot;https://blog.martin-haehnel.de/categories/dailydogo/&quot;&gt;DailyDogos&lt;/a&gt; and other posts like it (not that there are any at the moment…). These should be shared with the image attached. Maybe there is not even a need for the link, but it would be fine if it would be there&lt;/li&gt;
&lt;li&gt;When I&#39;m writing a toot, I&#39;d like my blog to archive a copy of that toot. The archived version should include images, links and whathaveyou.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So basically, there are two workflows with a couple of conditionals I would like to implement:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cross-Post all blog posts from my micro.blog to my mastodon (excluding posts that are archival copies of mastodon posts; denoted by being part of the category &amp;quot;archivalCopyOfToot&amp;quot;)
&lt;ul&gt;
&lt;li&gt;if the post has a title, use the title to create a link to the post and add any applicable hashtags by converting the assigned categories of said blog post to the toot&lt;/li&gt;
&lt;li&gt;if the post has no title
&lt;ul&gt;
&lt;li&gt;if the post has category of &amp;quot;tootAsIs&amp;quot;
&lt;ul&gt;
&lt;li&gt;add any images to the toot and post the contents of the blog post as is to mastodon (maybe add a link to the original on my blog)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;if the post has no category of &amp;quot;tootAsIs&amp;quot;
&lt;ul&gt;
&lt;li&gt;add a short (80 Chars and up to the next full word maybe?) excerpt and otherwise behave like a titled post&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I happen to have an &lt;a href=&quot;https://echofeed.app&quot;&gt;Echofeed&lt;/a&gt; account, which is part of the solution. I can point it at an RSS/JSON/Atom-Feed and it will post in a format I can specify to any of its supported services, which includes Mastodon and Micro.blog. It doesn&#39;t have any conditional logic, though, so I will have to provide it with feeds that only include posts that I want it to cross post.&lt;/p&gt;
&lt;p&gt;On the micro.blog side, this is maybe &lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/18/the-hugo-template.html&quot;&gt;not trivial&lt;/a&gt;, but at least is possible, since micro.blog uses &lt;a href=&quot;https://gohugo.io&quot;&gt;Hugo&lt;/a&gt; and you can - if you know how - customize it quite a bit. I&#39;ll need three feeds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A feed with only title posts, excluding any posts with the category &amp;quot;archivalCopyOfToot&amp;quot;&lt;/li&gt;
&lt;li&gt;A feed with only non-title posts, including only those of &amp;quot;tootAsIs&amp;quot; (and excluding any from the category &amp;quot;archivalCopyOfToot&amp;quot;)&lt;/li&gt;
&lt;li&gt;A feed with only non-title, excluding any of &amp;quot;tootAsIs&amp;quot; AND &amp;quot;archivalCopyOfToot&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I would then set up three echos that cross post to mastodon in the right way.&lt;/p&gt;
&lt;p&gt;Mastodon on the other hand has &lt;a href=&quot;https://social.lol/@matti.rss&quot;&gt;a feed of my posts&lt;/a&gt; too, but it&#39;s much more limited and creating new custom feeds that filter posts based on e.g. a hashtag are not possible, I believe. This means that we can&#39;t filter for cross-posted blog posts and will necessarily import those items to our blog, too. I would really like to avoid having to run my own script - locally or on a server - talking to their api or whatever, so I think I&#39;ll will have to live with the fact these duplicated posts will be crossposted back to my blog…&lt;/p&gt;
&lt;p&gt;What I can do is filter these posts out on the micro.blog side. Meaning posts that include a certain Hashtag like &amp;quot;crossPostByEchoFeed&amp;quot; (this could even be added inside Echofeed for the workflow that posts from Mastodon to MB and could be invisible to Mastodon followers) need to be excluded from the homepage, archive and any feeds of my blog (hashtags can be converted to categories using filters on micro.blog, so if I figure out how to filter by one or more categories in Hugo&#39;s template syntax, I should be fine implementing this). In that way they will be part of the blog, but they will not pollute the reading experience.&lt;/p&gt;
&lt;p&gt;So yes. I have to set up some feeds and some logic to make undesired toots invisible but then I should be able to get what I want without the need to setup any scripts run by me.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A New Cross-Posting Workflow, Part 1: Requirements And Thoughts On Implementation

        https://blog.martin-haehnel.de/2024/05/07/a-new-crossposting.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #WeblogPoMo2024 - Starting late doesn&#39;t mean not doing the thing



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/07/weblogpomo-starting-late.html" />
      <updated>2024-05-07T17:35:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/07/weblogpomo-starting-late.html</id>
      <content type="html">&lt;p&gt;So I guess I&#39;m doing the &lt;a href=&quot;https://weblog.anniegreens.lol/weblog-posting-month-2024&quot;&gt;#WeblogPoMo2024&lt;/a&gt; after all. It&#39;s a monthlong blogging challenge with the idea of posting every day for the month of May. From &lt;a href=&quot;https://micro.blog/anniegreens&quot;&gt;@anniegreens&lt;/a&gt;, the initiator of the idea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Probably obvious from the name: this is a one-month blogging challenge! It will start May 1, 2024, and end May 31, 2024. You will post as much as you can, ideally daily, but we all have lives, so go easy on yourself. This is meant to be fun!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you&#39;re curious, There is a &lt;a href=&quot;https://weblog.anniegreens.lol/weblog-posting-month-2024/participators&quot;&gt;participators list&lt;/a&gt; for the people who joined, like grown-ups on or before the first. I personally got inspired to participate because &lt;a href=&quot;https://social.lol/@robb&quot;&gt;@robb&lt;/a&gt; posts cool things on &lt;a href=&quot;https://rknight.me/blog/&quot;&gt;his blog,&lt;/a&gt; and I want to post &amp;quot;cool, very much me&amp;quot; things, too.&lt;/p&gt;
&lt;p&gt;I plan to publish 31 real posts (with a title and everything!) this month, and we&#39;ll see if this works or not. They don&#39;t need to be long, but they shouldn&#39;t be just a mastodon toot. I also plan on revamping my cross-posting flow and using mastodon and micro.blog a little bit more reader-friendly (meaning: less cross-posting of content without clear differentiation of where to follow and why, but I&#39;ll leave that for another post…)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #WeblogPoMo2024 - Starting late doesn&#39;t mean not doing the thing

        https://blog.martin-haehnel.de/2024/05/07/weblogpomo-starting-late.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 897 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/07/dailydogo.html" />
      <updated>2024-05-07T17:02:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 897 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/28e4583572ca408a9a5bd5769b866838.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 897 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 896 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/06/dailydogo.html" />
      <updated>2024-05-06T17:41:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 896 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/16a2f16915e34be8bc1e058331e6e4c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 896 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 895 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/05/dailydogo.html" />
      <updated>2024-05-05T19:01:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 895 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/76c5a1b9b7604848aa18339324f7b3d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 895 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 894 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/04/223259.html" />
      <updated>2024-05-04T19:32:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/04/223259.html</id>
      <content type="html">&lt;p&gt;DailyDogo 894 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bf8f47b1525840f5a1753001011a9fb6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 894 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 893 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/04/dailydogo.html" />
      <updated>2024-05-03T21:14:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 893 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/817c23c661964447afa2cb2ecc257e6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 893 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 892 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/02/dailydogo.html" />
      <updated>2024-05-02T18:21:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 892 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c476d16adcaf456a87f7a9c56645405b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 892 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 891 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/05/01/dailydogo.html" />
      <updated>2024-05-01T19:31:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/05/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 891 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/25678ec47226476d9ed35d99aaa5c940.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 891 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 890 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/30/dailydogo.html" />
      <updated>2024-04-30T20:22:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 890 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6d1a371383974197b884776810d18932.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 890 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 889 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/29/202216.html" />
      <updated>2024-04-29T17:22:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/29/202216.html</id>
      <content type="html">&lt;p&gt;DailyDogo 889 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6ca55b94dfb64abb8c8eed7ecb06ddf4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 889 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 888 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/29/dailydogo.html" />
      <updated>2024-04-29T17:21:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 888 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5187aed5cdf0431989a3dc2bf19dca5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 888 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 887 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/28/dailydogo.html" />
      <updated>2024-04-27T22:13:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 887 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dd2ee76ea5054f9e9bff1369a87cce1c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 887 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 886 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/27/dailydogo.html" />
      <updated>2024-04-26T22:00:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 886 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/362d6eaa995f47e9ad30cd1743725f9b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 886 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 885 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/25/dailydogo.html" />
      <updated>2024-04-25T20:00:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 885 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dce2abbca3ee4822b63d4cb036f414de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 885 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 884 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/24/dailydogo.html" />
      <updated>2024-04-24T19:22:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 884 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/47c9643acbff4d16a2476deb3b68cf19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 884 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 883 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/23/dailydogo.html" />
      <updated>2024-04-23T19:20:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 883 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8bc4f8ee2c0b4c7eb0d12c7a7f4adf8e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 883 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 882 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/22/221618.html" />
      <updated>2024-04-22T19:16:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/22/221618.html</id>
      <content type="html">&lt;p&gt;DailyDogo 882 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/29da3401bb194959bf247074b59133b8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 882 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 881 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/22/dailydogo.html" />
      <updated>2024-04-22T10:41:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 881 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e613a1f2cd704a00bc9c49a720bfc5de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 881 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 880 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/21/dailydogo.html" />
      <updated>2024-04-20T22:03:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 880 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/491177f13d124580adffdb8c7fb57e77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 880 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          After a lot of other...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/after-a-lot.html" />
      <updated>2024-04-20T18:21:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/after-a-lot.html</id>
      <content type="html">&lt;p&gt;After a lot of other stuff I&#39;m back at it. TIL that php ENUMS are kind of hard to do assertions on in PHPUnit. &lt;code&gt;assertSame&lt;/code&gt; and &lt;code&gt;assertEquals&lt;/code&gt; both don&#39;t work.&lt;/p&gt;
&lt;p&gt;What I can do though is this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$this-&amp;gt;assertSame(SyncStatus::Pending-&amp;gt;value, $syncStatusAfter-&amp;gt;value);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        After a lot of other stuff I&#39;m back at it. TIL that php ENUMS are kind of hard to do assertions on in PHPUnit. assertSame and assertEquals both don&#39;t work. What I can do though is this: $this-&amp;gt;assertSame(SyncStatus::Pending-&amp;gt;value, $syncStatusAfter-&amp;gt;value); #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          After many hours of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/after-many-hours.html" />
      <updated>2024-04-20T16:12:10Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/after-many-hours.html</id>
      <content type="html">&lt;p&gt;After many hours of familystuff, I&#39;m back trying to see why one of the tests is still failing, now that my sidequest about the seeder is complete. #BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        After many hours of familystuff, I&#39;m back trying to see why one of the tests is still failing, now that my sidequest about the seeder is complete. #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Just noticed I...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/just-noticed-i.html" />
      <updated>2024-04-20T10:36:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/just-noticed-i.html</id>
      <content type="html">&lt;p&gt;[Just noticed I never sent this…]&lt;/p&gt;
&lt;p&gt;#BuildInPublic #mbsync&lt;/p&gt;
&lt;p&gt;Alright, so the seeder works and I can skip registering all the time when resetting the db.  😅&lt;/p&gt;
&lt;p&gt;Instead I only need to run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;artisan migrate:fresh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and then:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;artisan db:seed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And I&#39;m good to go!&lt;/p&gt;
&lt;p&gt;The code needed some trial and error to get right, but looks basically like this:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;span class=&quot;token php language-php&quot;&gt;&lt;span class=&quot;token delimiter important&quot;&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;namespace&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;Database&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Seeders&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;App&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Models&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Blog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;App&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Models&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;User&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;Illuminate&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Database&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Seeder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;Illuminate&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Support&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Facades&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Config&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;Illuminate&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Support&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Facades&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Hash&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name-definition class-name&quot;&gt;AddAdminUserSeeder&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Seeder&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword return-type&quot;&gt;void&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$user&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token class-name static-context&quot;&gt;User&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;create&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$user&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$blogs&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
		&lt;span class=&quot;token comment&quot;&gt;//...&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$user&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;blogs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;saveMany&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$blogs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$user&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;selected_blog_id&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token variable&quot;&gt;$blogs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token variable&quot;&gt;$user&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;save&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
      
      <echofeed:content type="html">
        [Just noticed I never sent this…] #BuildInPublic #mbsync Alright, so the seeder works and I can skip registering all the time when resetting the db. 😅 Instead I only need to run: artisan migrate:fresh and then: artisan db:seed And I&#39;m good to go! The code needed some trial and error to get right, but looks basically like this: &amp;lt;?php namespace Database&#92;Seeders; use App&#92;Models&#92;Blog; use App&#92;Models&#92;User; use Illuminate&#92;Database&#92;Seeder; use Illuminate&#92;Support&#92;Facades&#92;Config; use Illuminate&#92;Support&#92;Facades&#92;Hash; class AddAdminUserSeeder extends Seeder { public function run(): void { $user = User::create([ //... ]); $user-&gt;save(); $blogs = [ //... ]; $user-&gt;blogs()-&gt;saveMany($blogs); $user-&gt;selected_blog_id = $blogs[0]-&gt;id; $user-&gt;save(); } }

        https://blog.martin-haehnel.de/2024/04/20/just-noticed-i.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s just really...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/its-just-really.html" />
      <updated>2024-04-20T08:47:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/its-just-really.html</id>
      <content type="html">&lt;p&gt;It&#39;s just really cool to me how powerful laravel&#39;s db abstractions are. I may not know yet how to express my needs and then try to do it old-school directly in sql at first, but that it&#39;s possible to express my needs and I can otherwise just focus on the code is so cool. #BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s just really cool to me how powerful laravel&#39;s db abstractions are. I may not know yet how to express my needs and then try to do it old-school directly in sql at first, but that it&#39;s possible to express my needs and I can otherwise just focus on the code is so cool. #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;m working on a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/im-working-on.html" />
      <updated>2024-04-20T08:23:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/im-working-on.html</id>
      <content type="html">&lt;p&gt;I&#39;m working on a little side quest atm. I&#39;m creating a database seeder that automatically adds a user to the db so that I can reset the db quicker. It&#39;s pretty easy with laravel and I love the distinction between migrations (schema changes) and seeders (data additions) #BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;m working on a little side quest atm. I&#39;m creating a database seeder that automatically adds a user to the db so that I can reset the db quicker. It&#39;s pretty easy with laravel and I love the distinction between migrations (schema changes) and seeders (data additions) #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          At the moment I&#39;m...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/at-the-moment.html" />
      <updated>2024-04-20T07:25:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/at-the-moment.html</id>
      <content type="html">&lt;p&gt;At the moment I&#39;m working on implementing the minimalistic sync engine - even calling it that gives it too much credit. One test is failing, it seems that the sync status is not marked as pending when we mark a post for sync. #BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        At the moment I&#39;m working on implementing the minimalistic sync engine - even calling it that gives it too much credit. One test is failing, it seems that the sync status is not marked as pending when we mark a post for sync. #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;ll continue my...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/20/ill-continue-my.html" />
      <updated>2024-04-20T07:22:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/20/ill-continue-my.html</id>
      <content type="html">&lt;p&gt;I&#39;ll continue my work on mb-sync. It&#39;s always a little hard to know how much time I have - so I might need to do something else soon, but I&#39;ll at least start. #BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;ll continue my work on mb-sync. It&#39;s always a little hard to know how much time I have - so I might need to do something else soon, but I&#39;ll at least start. #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 879 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/18/222825.html" />
      <updated>2024-04-18T19:28:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/18/222825.html</id>
      <content type="html">&lt;p&gt;DailyDogo 879 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/48f2c90026784522b577bd06a2c24c70.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 879 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 878 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/18/dailydogo.html" />
      <updated>2024-04-18T07:17:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 878 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/446f07ed1bd54c67894596661da7acc4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 878 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The metrics that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/16/the-metrics-that.html" />
      <updated>2024-04-16T20:11:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/16/the-metrics-that.html</id>
      <content type="html">&lt;p&gt;The metrics that people in charge at my work care about the most seem(!; to me) to be not reached. It&#39;s true, I can be kind of slow but what I do is mostly thought through. It just takes time. Sometimes too much, I guess.&lt;/p&gt;
&lt;p&gt;Amazing, how quickly confidence wanes under pressure. Tomorrow&#39;s another day.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The metrics that people in charge at my work care about the most seem(!; to me) to be not reached. It&#39;s true, I can be kind of slow but what I do is mostly thought through. It just takes time. Sometimes too much, I guess. Amazing, how quickly confidence wanes under pressure. Tomorrow&#39;s another day.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Wanting to do a good...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/16/wanting-to-do.html" />
      <updated>2024-04-16T20:10:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/16/wanting-to-do.html</id>
      <content type="html">&lt;p&gt;Wanting to do a good job and wanting to do a quality job aren&#39;t always congruent.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Wanting to do a good job and wanting to do a quality job aren&#39;t always congruent.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 877 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/16/dailydogo.html" />
      <updated>2024-04-16T19:52:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 877 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b1f3e3f8044b4be6821f1a78ce7b027f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 877 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 876 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/15/dailydogo.html" />
      <updated>2024-04-15T17:16:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 876 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/04efc44a18ff4c9ab186dbe325fa4b13.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 876 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Okay fixed the theme...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/15/okay-fixed-the.html" />
      <updated>2024-04-15T11:16:23Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/15/okay-fixed-the.html</id>
      <content type="html">&lt;p&gt;Okay fixed the theme next/previous links:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{ $cleanContentNext := .NextPage.Content | plainify }} {{ if gt (len $cleanContentNext) 20 }} {{ printf &amp;quot;%.20s&amp;quot; $cleanContentNext }} {{ else }} {{ $cleanContentNext }} {{ end }} {{ end }}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the other problem seems to have been a category filter not having run through. There is no pagination, it just shows all the posts on one page. Which is fine for now.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/15/my-theme-switch.html&quot;&gt;Previously&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Okay fixed the theme next/previous links: {{ $cleanContentNext := .NextPage.Content | plainify }} {{ if gt (len $cleanContentNext) 20 }} {{ printf &amp;quot;%.20s&amp;quot; $cleanContentNext }} {{ else }} {{ $cleanContentNext }} {{ end }} {{ end }} And the other problem seems to have been a category filter not having run through. There is no pagination, it just shows all the posts on one page. Which is fine for now. Previously</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My theme switch has...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/15/my-theme-switch.html" />
      <updated>2024-04-15T06:27:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/15/my-theme-switch.html</id>
      <content type="html">&lt;p&gt;My theme switch has lead to a couple of problems that I have to solve it seems in time I don&#39;t have. 1. posts without a title lead to links without one in the single post view &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An annotated screenshot ilustrating the invisible links problem&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-15-at-09.03.24.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; 2. for some reason the categories view is not paged and you can&#39;t view posts in a category past the 11th post. Why? &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An annotated screenshot ilustrating the missing pagination in categories problem&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/category-pagination.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; Great. Great stuff.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/07/took-the-plunge.html&quot;&gt;Previously&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/15/okay-fixed-the.html&quot;&gt;Forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        My theme switch has lead to a couple of problems that I have to solve it seems in time I don&#39;t have. 1. posts without a title lead to links without one in the single post view 2. for some reason the categories view is not paged and you can&#39;t view posts in a category past the 11th post. Why? Great. Great stuff. Previously Forward</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 875 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/dailydogo.html" />
      <updated>2024-04-14T20:22:27Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 875 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fe2c0e1acb494fa7917918ecd0ad9a64.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 875 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-the.html" />
      <updated>2024-04-14T13:35:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-the.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff The library is closing soon and I&#39;m spent mentally for the moment. Time to take the rest of the Sunday off!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff The library is closing soon and I&#39;m spent mentally for the moment. Time to take the rest of the Sunday off!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/163436.html" />
      <updated>2024-04-14T13:34:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/163436.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff I did it. Around 200 notes have been reviewed, filed away, linked to and from, some of them tagged, renamed, deleted (very few). Most of them were how-to notes, some were ideas, some were project journals, some just held some information like an address, a measurement, etc.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff I did it. Around 200 notes have been reviewed, filed away, linked to and from, some of them tagged, renamed, deleted (very few). Most of them were how-to notes, some were ideas, some were project journals, some just held some information like an address, a measurement, etc.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/154708.html" />
      <updated>2024-04-14T12:47:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/154708.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff Still 66 files to go. An observation: I need to do focussed reviews, that is, reviews that only tackle part of the system, more often. That I can review files in this way is actually very helpful to make those notes I took time to write more useful and discoverable.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff Still 66 files to go. An observation: I need to do focussed reviews, that is, reviews that only tackle part of the system, more often. That I can review files in this way is actually very helpful to make those notes I took time to write more useful and discoverable.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-still.html" />
      <updated>2024-04-14T10:48:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-still.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff Still 136 Files to review in my Inbox and I might not do anything else after this, actually, since this is going to take a moment still. But I&#39;m very happy that the simple note review plugin works now as expected.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff Still 136 Files to review in my Inbox and I might not do anything else after this, actually, since this is going to take a moment still. But I&#39;m very happy that the simple note review plugin works now as expected.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-i.html" />
      <updated>2024-04-14T09:57:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-i.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff I think that either simple note review or the underlying dataview plugin got a fix, because it now actually works as expected?! I&#39;m reviewing, moving and lightly editing the notes in my Inbox folder and try to think a little how to review my readwise highlights next.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff I think that either simple note review or the underlying dataview plugin got a fix, because it now actually works as expected?! I&#39;m reviewing, moving and lightly editing the notes in my Inbox folder and try to think a little how to review my readwise highlights next.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-even.html" />
      <updated>2024-04-14T09:35:30Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-even.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff Even though I had abandoned the simple note review plugin since it didn&#39;t work very well and the spaced repetition plugin seemed more stable I have now reverted to the former. Main reason: Having different review queues, since having just one giant queue didn&#39;t cut it.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff Even though I had abandoned the simple note review plugin since it didn&#39;t work very well and the spaced repetition plugin seemed more stable I have now reverted to the former. Main reason: Having different review queues, since having just one giant queue didn&#39;t cut it.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-im.html" />
      <updated>2024-04-14T09:17:56Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-zknstuff-im.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #zknstuff I&#39;m trying to figure out how to use these library Sundays the best at the moment and my idea was to use the &lt;a href=&quot;https://github.com/st3v3nmw/obsidian-spaced-repetition&quot;&gt;spaced repetition plugin&lt;/a&gt; for it. I have done that a handful of weeks now but with so many notes it is kind of unsatisfying. So let&#39;s think about the review process a little, cleaning up what is there and maybe finding a new way to do things.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #zknstuff I&#39;m trying to figure out how to use these library Sundays the best at the moment and my idea was to use the spaced repetition plugin for it. I have done that a handful of weeks now but with so many notes it is kind of unsatisfying. So let&#39;s think about the review process a little, cleaning up what is there and maybe finding a new way to do things.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Today I&#39;m spending...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/today-im-spending.html" />
      <updated>2024-04-14T09:10:42Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/today-im-spending.html</id>
      <content type="html">&lt;p&gt;Today I&#39;m spending time in the library working on my notes. I thought I&#39;d try to do a #BuildInPublic kind of thing, since it was fun the last couple of days to post about what I&#39;m doing as regards to #mbsync. so I&#39;m going to try this here, too. Hashtags will be #BuildInPublic and #zknstuff.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Today I&#39;m spending time in the library working on my notes. I thought I&#39;d try to do a #BuildInPublic kind of thing, since it was fun the last couple of days to post about what I&#39;m doing as regards to #mbsync. so I&#39;m going to try this here, too. Hashtags will be #BuildInPublic and #zknstuff.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/14/buildinpublic-mbsync-thats.html" />
      <updated>2024-04-13T21:31:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/14/buildinpublic-mbsync-thats.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync That&#39;s it for today. Lots of little things done. Learned some stuff and realized a lot of things about how to structure the sync state. This&#39;ll be the most important part of the app, so it&#39;s alright if it takes some time and some attempts to get right.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync That&#39;s it for today. Lots of little things done. Learned some stuff and realized a lot of things about how to structure the sync state. This&#39;ll be the most important part of the app, so it&#39;s alright if it takes some time and some attempts to get right.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-alright.html" />
      <updated>2024-04-13T20:42:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-alright.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Alright. The test for a post that is unchanged does the thing and I already created a similar test for a newly created post. However I don&#39;t like how the sync status is saved in the db. Or rather how different kinds of logic are reduced to only the sync state. We need to differentiate between the state of the sync itself (pending/synchronized/error) and what we sync (creation/update/deletion). At least I think it&#39;d be nice to be explicit about it. Makes it more testable. So we need two fields in the db on every post:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sync_status: pending, synchronized, error, none&lt;/li&gt;
&lt;li&gt;sync_intention: create, update, delete, none&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Alright. The test for a post that is unchanged does the thing and I already created a similar test for a newly created post. However I don&#39;t like how the sync status is saved in the db. Or rather how different kinds of logic are reduced to only the sync state. We need to differentiate between the state of the sync itself (pending/synchronized/error) and what we sync (creation/update/deletion). At least I think it&#39;d be nice to be explicit about it. Makes it more testable. So we need two fields in the db on every post: sync_status: pending, synchronized, error, none sync_intention: create, update, delete, none

        https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-alright.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-so.html" />
      <updated>2024-04-13T19:04:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-so.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync So. Me the last few hours:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&#39;m not distracted, I&#39;m on a side quest.
— https://beige.party/@RickiTarr/112264314660393539&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Where was I? Oh yes. Refactoring/Writing a test for the &lt;code&gt;markForSync&lt;/code&gt; method. I have the starting point for the test, which creates a post using a factory and writes that same data to disk. Now we need to run the post through our method and see that the posts &lt;code&gt;sync_status&lt;/code&gt; is not marked for creation/update/deletion.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync So. Me the last few hours: I&#39;m not distracted, I&#39;m on a side quest. — https://beige.party/@RickiTarr/112264314660393539 Where was I? Oh yes. Refactoring/Writing a test for the markForSync method. I have the starting point for the test, which creates a post using a factory and writes that same data to disk. Now we need to run the post through our method and see that the posts sync_status is not marked for creation/update/deletion.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 874 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/201946.html" />
      <updated>2024-04-13T17:19:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/201946.html</id>
      <content type="html">&lt;p&gt;DailyDogo 874 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5cc7c6f46d174eff84ead445b1f6a185.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 874 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-ugh.html" />
      <updated>2024-04-13T15:04:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-ugh.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Ugh. And even more problems. I use the laravel validated dto package, because I like working with DTOs and getting validation &amp;quot;for free&amp;quot; is nice. However:&lt;/p&gt;
&lt;p&gt;If a post doesn&#39;t have a category the mb api returns an empty array. Fine. I can validate this as &lt;code&gt;&#39;categories&#39; =&amp;gt; [&#39;present&#39;, &#39;array&#39;],&lt;/code&gt;, but interestingly the DTOs saves this internally as null. And guess what? categories in not nullable anymore when I try to save a post with empty categories to the db. Hmpf.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Ugh. And even more problems. I use the laravel validated dto package, because I like working with DTOs and getting validation &amp;quot;for free&amp;quot; is nice. However: If a post doesn&#39;t have a category the mb api returns an empty array. Fine. I can validate this as &#39;categories&#39; =&amp;gt; [&#39;present&#39;, &#39;array&#39;],, but interestingly the DTOs saves this internally as null. And guess what? categories in not nullable anymore when I try to save a post with empty categories to the db. Hmpf.

        https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-ugh.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-discoverd.html" />
      <updated>2024-04-13T12:43:22Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-discoverd.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Discoverd another problem: I was allowing the categories field (json in the db) in my Post model to be null. Turns out if you do that you can&#39;t &lt;a href=&quot;https://laracasts.com/discuss/channels/laravel/cast-to-array-not-working&quot;&gt;cast that json to array&lt;/a&gt; through eloquent. So I changed that in my migrations, but this means that the assumption you can write a post to the db with categories being null doesn&#39;t hold anymore. So more yak shaving…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Discoverd another problem: I was allowing the categories field (json in the db) in my Post model to be null. Turns out if you do that you can&#39;t cast that json to array through eloquent. So I changed that in my migrations, but this means that the assumption you can write a post to the db with categories being null doesn&#39;t hold anymore. So more yak shaving…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-im.html" />
      <updated>2024-04-13T11:41:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-im.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync I&#39;m much more familiar with codeception and my brain is kinda mushy so figuring out how to do things in PHPUnit took its time. However, I refactored that &lt;code&gt;storePost&lt;/code&gt; method now and have a test (which I wrote first or at least started to write first) to make sure it does what I want it to do. Now back to &lt;code&gt;testMarkForSync&lt;/code&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync I&#39;m much more familiar with codeception and my brain is kinda mushy so figuring out how to do things in PHPUnit took its time. However, I refactored that storePost method now and have a test (which I wrote first or at least started to write first) to make sure it does what I want it to do. Now back to testMarkForSync.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-after.html" />
      <updated>2024-04-13T10:45:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-after.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync After a late combined breakfast/lunch back at it. Still writing the testcase for storePost. I had to think about how to structure tests that rely on test data or rather needs a directory to write to. I generally like to mirror the structure of the app in my tests, so that I can find the things I need easily. I have now introduced a testData directory where I can write to/from the filesystem. It looks like this:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f642602c89.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync After a late combined breakfast/lunch back at it. Still writing the testcase for storePost. I had to think about how to structure tests that rely on test data or rather needs a directory to write to. I generally like to mirror the structure of the app in my tests, so that I can find the things I need easily. I have now introduced a testData directory where I can write to/from the filesystem. It looks like this:</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/120113.html" />
      <updated>2024-04-13T09:01:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/120113.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Well, that worked. We just had to add:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public function posts(): &#92;Illuminate&#92;Database&#92;Eloquent&#92;Relations&#92;HasMany
    {
        return $this-&amp;gt;hasMany(Post::class);
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;to the Blog model.&lt;/p&gt;
&lt;p&gt;Now we can do the following in our test:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$blog = Blog::factory()-&amp;gt;has(Post::factory()-&amp;gt;count(1))-&amp;gt;create();
$post = $blog-&amp;gt;posts-&amp;gt;first();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That post now has some fake data as defined in my PostFactory.&lt;/p&gt;
&lt;p&gt;Time to write this to disk. We could use &lt;code&gt;PostFilePersistorService::storePost&lt;/code&gt;. This method makes a couple of assumptions about where to write data and I would like it to just write where I want it to. So I will refactor the path generation logic out of &lt;code&gt;storePost&lt;/code&gt;. In the future it should be handed in via a parameter. This is a big change but we&#39;re the only developer and in the &amp;quot;break lots of things&amp;quot; phase, so I feel this is fine.&lt;/p&gt;
&lt;p&gt;There is only one problem: We again have no test! So what I&#39;ll do is make the other test pass, add a TODO to it and create a test for storePost. First things first.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Well, that worked. We just had to add: public function posts(): &#92;Illuminate&#92;Database&#92;Eloquent&#92;Relations&#92;HasMany { return $this-&amp;gt;hasMany(Post::class); } to the Blog model. Now we can do the following in our test: $blog = Blog::factory()-&amp;gt;has(Post::factory()-&amp;gt;count(1))-&amp;gt;create(); $post = $blog-&amp;gt;posts-&amp;gt;first(); That post now has some fake data as defined in my PostFactory. Time to write this to disk. We could use PostFilePersistorService::storePost. This method makes a couple of assumptions about where to write data and I would like it to just write where I want it to. So I will refactor the path generation logic out of storePost. In the future it should be handed in via a parameter. This is a big change but we&#39;re the only developer and in the &amp;quot;break lots of things&amp;quot; phase, so I feel this is fine. There is only one problem: We again have no test! So what I&#39;ll do is make the other test pass, add a TODO to it and create a test for storePost. First things first.

        https://blog.martin-haehnel.de/2024/04/13/120113.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/114426.html" />
      <updated>2024-04-13T08:44:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/114426.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Well, it seems that my models are incomplete. I am missing a relationship between a blog and its posts. This is needed so that my factory can create some posts to test with.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Well, it seems that my models are incomplete. I am missing a relationship between a blog and its posts. This is needed so that my factory can create some posts to test with.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-no.html" />
      <updated>2024-04-13T08:36:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-no.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync No tests, alright. What do we want to test here? If we call &lt;code&gt;markForSync()&lt;/code&gt; a changed post, a deleted post, a new post and an unchanged post should all be detected correctly. So let&#39;s start with the simple case that a post in  the db and in the filesystem are the same.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync No tests, alright. What do we want to test here? If we call markForSync() a changed post, a deleted post, a new post and an unchanged post should all be detected correctly. So let&#39;s start with the simple case that a post in the db and in the filesystem are the same.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-continuing.html" />
      <updated>2024-04-13T08:31:19Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-continuing.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Continuing from yesterday. I will rewrite the markForSync method so it iterates over the posts in the db instead of the files to be able to detect deleted files as well. Just have to check if there are any tests to work with, or if I have to add them first.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Continuing from yesterday. I will rewrite the markForSync method so it iterates over the posts in the db instead of the files to be able to detect deleted files as well. Just have to check if there are any tests to work with, or if I have to add them first.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-well.html" />
      <updated>2024-04-12T22:41:15Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/buildinpublic-mbsync-well.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Well. Looks like I will not continue today…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Well. Looks like I will not continue today…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 873 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/13/dailydogo.html" />
      <updated>2024-04-12T21:52:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 873 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4f64b15e7fc40f0bc8c1bd5af6cfd3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 873 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-will.html" />
      <updated>2024-04-12T13:36:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-will.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Will continue but we have stuff to do in the city.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Will continue but we have stuff to do in the city.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-it.html" />
      <updated>2024-04-12T13:35:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-it.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync It seems that I have a column in the posts table called sync_status that is &lt;code&gt;enum(&#39;pending&#39;,&#39;synced&#39;,&#39;deleted&#39;)&lt;/code&gt; so it seems to me I need to set this to deleted if the file is missing, which implies that instead of iterating over the blog post files and marking the posts in the db I need to iterate over the blogposts in the db since otherwise I miss the deleted files. Does this make sense?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Files:
&lt;ul&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;li&gt;2&lt;/li&gt;
&lt;li&gt;3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Posts in DB
&lt;ul&gt;
&lt;li&gt;1&lt;/li&gt;
&lt;li&gt;2&lt;/li&gt;
&lt;li&gt;3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I was checking the files against the db to find new and updated posts, but I&#39;m now going to check the db against the files instead. I should still be able to find new/updated posts, but also posts that are missing from the filesystem.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync It seems that I have a column in the posts table called sync_status that is enum(&#39;pending&#39;,&#39;synced&#39;,&#39;deleted&#39;) so it seems to me I need to set this to deleted if the file is missing, which implies that instead of iterating over the blog post files and marking the posts in the db I need to iterate over the blogposts in the db since otherwise I miss the deleted files. Does this make sense? Files: 1 2 3 Posts in DB 1 2 3 I was checking the files against the db to find new and updated posts, but I&#39;m now going to check the db against the files instead. I should still be able to find new/updated posts, but also posts that are missing from the filesystem.

        https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-it.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          #BuildInPublic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-alright.html" />
      <updated>2024-04-12T13:17:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-alright.html</id>
      <content type="html">&lt;p&gt;#BuildInPublic #mbsync Alright found something todo: &lt;code&gt;// TODO: mark post as deleted&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The way this app works is by downloading posts and keeping a hash in the database and also saving them to the filesystem. There is a rudimentary implementation for new and updated posts, but files that are deleted from the filesystem are not marked as deleted in the db. The db is what gets synced with mb though. So we need a field on the post that marks it as deleted, so that when we sync the next time the post can be deleted from mb.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        #BuildInPublic #mbsync Alright found something todo: // TODO: mark post as deleted The way this app works is by downloading posts and keeping a hash in the database and also saving them to the filesystem. There is a rudimentary implementation for new and updated posts, but files that are deleted from the filesystem are not marked as deleted in the db. The db is what gets synced with mb though. So we need a field on the post that marks it as deleted, so that when we sync the next time the post can be deleted from mb.

        https://blog.martin-haehnel.de/2024/04/12/buildinpublic-mbsync-alright.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          One thing that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/12/one-thing-that.html" />
      <updated>2024-04-12T12:57:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/12/one-thing-that.html</id>
      <content type="html">&lt;p&gt;One thing that always happens with this one: Don&#39;t know what the next step is. Learning goals are for now:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;phpstorm&lt;/li&gt;
&lt;li&gt;laravel&lt;/li&gt;
&lt;li&gt;tdd&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So I use [[laravel-herd|herd]] and dbngin for the local dev env and use phpstorm as the ide and realize that I have uncomitted stuff. Let&#39;s see if the tests pass.&lt;/p&gt;
&lt;p&gt;#BuildInPublic #mbsync&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        One thing that always happens with this one: Don&#39;t know what the next step is. Learning goals are for now: phpstorm laravel tdd So I use [[laravel-herd|herd]] and dbngin for the local dev env and use phpstorm as the ide and realize that I have uncomitted stuff. Let&#39;s see if the tests pass. #BuildInPublic #mbsync</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Inspired by...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/12/inspired-by-vincent.html" />
      <updated>2024-04-12T12:51:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/12/inspired-by-vincent.html</id>
      <content type="html">&lt;p&gt;Inspired by &lt;a href=&quot;https://micro.blog/vincent&quot;&gt;@vincent&lt;/a&gt; I am going to #BuildInPublic. I have a nice little learning project that is supposed to be like &lt;a href=&quot;https://blot.im&quot;&gt;blot&lt;/a&gt; but for micro.blog. I&#39;m calling it mb-sync and I&#39;m going to use #mbsync to refer to it.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Inspired by @vincent I am going to #BuildInPublic. I have a nice little learning project that is supposed to be like blot but for micro.blog. I&#39;m calling it mb-sync and I&#39;m going to use #mbsync to refer to it.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 872 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/11/dailydogo.html" />
      <updated>2024-04-11T19:05:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 872 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec48de7863054f86a869b390816c4088.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 872 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          1000 Days of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/11/days-of-duolingo.html" />
      <updated>2024-04-11T07:20:35Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/11/days-of-duolingo.html</id>
      <content type="html">&lt;p&gt;1000 Days of Duolingo. I am little proud. I do only one lesson per day at the moment, so progress is slow. And working for a German company also doesn&#39;t help in becoming a Finnish speaker quicker. But it&#39;s a process. As long as I keep going, I&#39;ll improve.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of the duolingo web app showing off the 1000 day streak &quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-11-at-09.47.54.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/01/06/previously-this-last.html&quot;&gt;Previously&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        1000 Days of Duolingo. I am little proud. I do only one lesson per day at the moment, so progress is slow. And working for a German company also doesn&#39;t help in becoming a Finnish speaker quicker. But it&#39;s a process. As long as I keep going, I&#39;ll improve. Previously</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Looking forward to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/10/looking-forward-to.html" />
      <updated>2024-04-10T20:19:29Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/10/looking-forward-to.html</id>
      <content type="html">&lt;p&gt;Looking forward to &lt;a href=&quot;https://echofeed.app/&quot;&gt;EchhoFeed&lt;/a&gt; being available. Because then I will be aböe to crosspost from Mastodon to my blog (instead of the other way around). Which means I should be able to blog a little more without it being an ordeal.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Looking forward to EchhoFeed being available. Because then I will be aböe to crosspost from Mastodon to my blog (instead of the other way around). Which means I should be able to blog a little more without it being an ordeal.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 871 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/10/dailydogo.html" />
      <updated>2024-04-10T20:03:47Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 871 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/325a76021a3642bdb650f56dcae7ca39.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 871 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Nice little evening...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/09/nice-little-evening.html" />
      <updated>2024-04-09T20:38:01Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/09/nice-little-evening.html</id>
      <content type="html">&lt;p&gt;Nice little evening walk before sleep with the dog just now. About 20 mins longer than usual. I could get used to this. But the dog is usually so lazy at this time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Nice little evening walk before sleep with the dog just now. About 20 mins longer than usual. I could get used to this. But the dog is usually so lazy at this time.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 870 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/09/215928.html" />
      <updated>2024-04-09T18:59:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/09/215928.html</id>
      <content type="html">&lt;p&gt;DailyDogo 870 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d2feced16414ce494efb66b74d5b347.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 870 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 869 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/09/dailydogo.html" />
      <updated>2024-04-09T16:58:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 869 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ecf1ed64151d46929989e852d059fb53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 869 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Took the time while...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/08/took-the-time.html" />
      <updated>2024-04-08T16:25:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/08/took-the-time.html</id>
      <content type="html">&lt;p&gt;Took the time while my partner was driving us back to #oulu (we were visiting my partner&#39;s family to celebrate her aunt&#39;s 70th over a long weekend) to reconcile accounts and balance my personal budget. On my phone. Using my bank&#39;s app and ynab. Worked pretty well!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Took the time while my partner was driving us back to #oulu (we were visiting my partner&#39;s family to celebrate her aunt&#39;s 70th over a long weekend) to reconcile accounts and balance my personal budget. On my phone. Using my bank&#39;s app and ynab. Worked pretty well!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          How beautiful are...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/how-beautiful-are.html" />
      <updated>2024-04-07T19:45:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/how-beautiful-are.html</id>
      <content type="html">&lt;p&gt;How beautiful are these words about person living in a city during war:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Today I stopped by my favorite flower store on Kharkov’s Avenue of Heroes. I was thinking that, if the electricity goes out during the day, I will tidy up the balcony. I will wash the windows, take out the flowers, and I’ll transplant the shoots because the roots are already kilometers long.&lt;/p&gt;
&lt;p&gt;It&#39;s spring. No matter what.&lt;/p&gt;
&lt;p&gt;The sales girl meets me on the doorstep. She says: “Oh no, what are you thinking? Begonias on the balcony this early? There might still be frost at night.”&lt;/p&gt;
&lt;p&gt;And we stand in the amazing-smelling shop with the garden roses, and together we watch the weather. The siren squeals. We look at each other, and silently move away from the windows to the fertilizer section, and we talk about the dracaenas waking up from their winter hibernation.&lt;/p&gt;
&lt;p&gt;God, I love my city.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;(found &lt;a href=&quot;https://www.markbernstein.org/Apr24/Flowers.html&quot;&gt;here&lt;/a&gt;, don&#39;t know anything else about it, since the original Post seems to be part of medium, which I&#39;m not a subscriber of…)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        How beautiful are these words about person living in a city during war: Today I stopped by my favorite flower store on Kharkov’s Avenue of Heroes. I was thinking that, if the electricity goes out during the day, I will tidy up the balcony. I will wash the windows, take out the flowers, and I’ll transplant the shoots because the roots are already kilometers long. It&#39;s spring. No matter what. The sales girl meets me on the doorstep. She says: “Oh no, what are you thinking? Begonias on the balcony this early? There might still be frost at night.” And we stand in the amazing-smelling shop with the garden roses, and together we watch the weather. The siren squeals. We look at each other, and silently move away from the windows to the fertilizer section, and we talk about the dracaenas waking up from their winter hibernation. God, I love my city. (found here, don&#39;t know anything else about it, since the original Post seems to be part of medium, which I&#39;m not a subscriber of…)

        https://blog.martin-haehnel.de/2024/04/07/how-beautiful-are.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 868 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/204203.html" />
      <updated>2024-04-07T17:42:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/204203.html</id>
      <content type="html">&lt;p&gt;DailyDogo 868 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c149ba5ea71b476d872fc9cba4fae516.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 868 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Took the plunge...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/took-the-plunge.html" />
      <updated>2024-04-07T09:42:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/took-the-plunge.html</id>
      <content type="html">&lt;p&gt;Took the plunge today and changed my theme for the first time since establishing my blog on micro.blog. I&#39;m very apprehensive changing themes and other things that I consider default behavior. Because this either means maintenance for me or maintenance for somebody else. I&#39;m not a very visual person especially when I have to create things. I want to write and I want it to look okay, but I&#39;m not sweating it if the blog looks antiquated or whatever. However, a blog needs some form of a (design) theme and so I have generally opted for whatever the default is. The default is going to be maintained no matter what so it&#39;s a pretty safe bet. One thing that irks me a lot about micro.blog&#39;s default theme: How invisible the categories are! They are only visible on the archive page, not in the list of posts and not on the single post page either. I find this very impractical, because you can&#39;t browse other posts in the same category. Another thing is that the default theme doesn&#39;t do proper pagination. The homepage just includes 20 or so posts and that&#39;s it. You have to go to the archive page to see more posts, but there they are only visible in a truncated fashion. Long story short: I changed the theme! This one is called &lt;a href=&quot;https://github.com/microdotblog/theme-minos&quot;&gt;Minos&lt;/a&gt; and shows the categories above every post and has pagination. For posterity&#39;s sake, here are some more or less random screenshots from the blog before changing themes: &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.17.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f71800238e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.18.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/96b771b3d3.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/596e0dfb26.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22a2175997.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt; &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot showing my blog using the old default theme&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/screenshot-2024-04-07-at-12.26.11.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/15/my-theme-switch.html&quot;&gt;Forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Took the plunge today and changed my theme for the first time since establishing my blog on micro.blog. I&#39;m very apprehensive changing themes and other things that I consider default behavior. Because this either means maintenance for me or maintenance for somebody else. I&#39;m not a very visual person especially when I have to create things. I want to write and I want it to look okay, but I&#39;m not sweating it if the blog looks antiquated or whatever. However, a blog needs some form of a (design) theme and so I have generally opted for whatever the default is. The default is going to be maintained no matter what so it&#39;s a pretty safe bet. One thing that irks me a lot about micro.blog&#39;s default theme: How invisible the categories are! They are only visible on the archive page, not in the list of posts and not on the single post page either. I find this very impractical, because you can&#39;t browse other posts in the same category. Another thing is that the default theme doesn&#39;t do proper pagination. The homepage just includes 20 or so posts and that&#39;s it. You have to go to the archive page to see more posts, but there they are only visible in a truncated fashion. Long story short: I changed the theme! This one is called Minos and shows the categories above every post and has pagination. For posterity&#39;s sake, here are some more or less random screenshots from the blog before changing themes: Forward

        https://blog.martin-haehnel.de/2024/04/07/took-the-plunge.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Digital Garden



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/digital-garden.html" />
      <updated>2024-04-07T09:07:55Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/digital-garden.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-04-07 - introduced changelog, added Maggie Appleton&#39;s garden as inspiration, introduced historical notes&lt;/li&gt;
&lt;li&gt;2024-05-20 - Added paragraph about my grandparent&#39;s garden&lt;/li&gt;
&lt;li&gt;2024-11-02 - removed mention of the &lt;a href=&quot;https://micropublish.blog&quot;&gt;Micro.publish-Plugin&lt;/a&gt; since I don&#39;t use it anymore&lt;/li&gt;
&lt;li&gt;2025-01-17 - fixed a typo and added a paragraph about blogs and digital gardens and apps and digital gardens&lt;/li&gt;
&lt;li&gt;2025-07-03 - added a Glossary and a link to Seedling&lt;/li&gt;
&lt;li&gt;2025-08-27 - fixed a typo and added a link in the Historical Notes&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;These notes are different from other blog posts in the sense that they aren&#39;t staying the same over time, but reflect my current thinking. All of the notes that fall under the umbrella of the digital garden will be part of the DigitalGarden &lt;a href=&quot;https://blog.martin-haehnel.de/categories/digitalgarden/&quot;&gt;category&lt;/a&gt; and &lt;a href=&quot;https://blog.martin-haehnel.de/garden/&quot;&gt;page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My Grandparents have beautiful garden that in my mind is as beautiful as it gets: A small refuge outside out the city of Berlin where they spend many weekends and whole summers when they retired. So much love went into this place. And at the same time it&#39;s a relaxing oasis. A comforting place a place that connects coziness with nature.&lt;/p&gt;
&lt;p&gt;How does this connect to the notion of a digital garden?&lt;/p&gt;
&lt;h3 id=&quot;apps-and-digital-gardens&quot;&gt;Apps And Digital Gardens&lt;/h3&gt;
&lt;p&gt;A digital garden is similar to an app in that it is limited - not necessarily to a use case, but to a point view. It is also similar in the sense that its parts get hopefully better with every released version. Parts may be rewritten, others may be removed. So creating a digital garden is a little like creating a piece of software. Which is why a changelog makes sense.&lt;/p&gt;
&lt;h3 id=&quot;blog-and-digital-gardens&quot;&gt;Blog And Digital Gardens&lt;/h3&gt;
&lt;blockquote&gt;
&lt;h4 id=&quot;the-problem-with-blogs&quot;&gt;The problem with blogs&lt;/h4&gt;
&lt;p&gt;A blog structure places the highest emphasis on ‘what’s new’… but what’s new has had the least scrutiny and little authority. It also creates a pressure to publish something—anything—whether you have anything worth saying or not. It prioritises novelty over quality.&lt;/p&gt;
&lt;p&gt;Every new post on a blog implicitly devalues other content on the blog, the same way today’s newspaper makes yesterday’s irrelevant. This is what’s new. That stuff is old.&lt;/p&gt;
&lt;h4 id=&quot;the-benefits-of-gardens&quot;&gt;The benefits of gardens&lt;/h4&gt;
&lt;p&gt;With digital gardens, every new piece of content in the network has the potential to add depth and context to every other part. The whole becomes greater than the sum of its parts.&lt;/p&gt;
&lt;p&gt;By placing emphasis on ‘what’s updated’, digital gardens value more battle-hardened content that’s earned it’s authority through innumerable updates and iterations.
— &lt;a href=&quot;https://armstrong.is/miscellaneous/digital-gardening&quot;&gt;Digital Gardening&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;As with &amp;quot;blikis&amp;quot; before(?), digital gardens and blogs are not necessarily opposites. I think having chronologically ordered posts AND evergreen and ever evolving notes at the same time can make sense. It is a very attractive way of publishing online, I think. Why not just have both? You could even have two feeds: One for the recently published posts and another for recently updated notes.&lt;/p&gt;
&lt;h3 id=&quot;historical-notes&quot;&gt;Historical notes&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.technologyreview.com/2020/09/03/1007716/digital-gardens-let-you-cultivate-your-own-little-bit-of-the-internet/&quot;&gt;According to this&lt;/a&gt; Mark Bernstein - which I know of from &lt;a href=&quot;http://www.eastgate.com/Tinderbox/&quot;&gt;Tinderbox&lt;/a&gt;, a Mac app, for creating networked notes, long before &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; et. al. - &lt;a href=&quot;http://www.eastgate.com/garden/Enter.html&quot;&gt;came up with the term in 1998&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My main point of inspiration is &lt;a href=&quot;https://maggieappleton.com/garden&quot;&gt;Maggie Appleton&#39;s Digital Garden.&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;glossary&quot;&gt;Glossary&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/07/03/seedling-notes/&quot;&gt;Seedling&lt;/a&gt; - unfinished notes that are nothing more than a starting point at the moment&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Digital Garden

        https://blog.martin-haehnel.de/2024/04/07/digital-garden.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Loving from a distance



        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html" />
      <updated>2024-04-06T22:22:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2024-04-07 - introduced changelog&lt;/li&gt;
&lt;li&gt;2025-08-28 - reworded the beginning of the post slightly&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Today I by chance said out loud what I had thought about in a vague sense for a while: It&#39;s sometimes easier to love something that is far away and maybe even unreachable. I have an easier time being German in Finland than I ever had in Germany. I love watching sports like baseball or ice hockey but do not like the thought of visiting a stadium. Most of the podcasts I listen to are from the US or Australia. I guess that the thing of affection being far away make it somehow easier to consume: its less likely to show its wrinkles and warts, either because I can&#39;t see them - because I&#39;m not a native and therefore blissfully ignorant, especially if I&#39;m physically far away also - or because I&#39;m not living the day to day life embedded in a certain culture because of physical distance.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Loving from a distance

        https://blog.martin-haehnel.de/2024/04/07/loving-from-a.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 867 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/07/dailydogo.html" />
      <updated>2024-04-06T21:36:58Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 867 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b6bbbab02744e8b9379166b289de072.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 867 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 866 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/05/dailydogo.html" />
      <updated>2024-04-05T14:21:49Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 866 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/30206ca0cb1c418b83aa6d4f36040bd6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 866 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 865 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/04/dailydogo.html" />
      <updated>2024-04-04T17:15:53Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 865 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f4b5795ab9ed42bea108f2a4ff5035f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 865 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 864 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/03/dailydogo.html" />
      <updated>2024-04-03T18:37:26Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 864 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/44cf9eabb8cc4327bee63afa4e507280.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 864 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 863 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/02/dailydogo.html" />
      <updated>2024-04-02T17:06:08Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 863 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/13526ff7b8584a84bd358233d3b386c5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 863 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 862 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/04/01/dailydogo.html" />
      <updated>2024-04-01T19:56:15Z</updated>
      <id>https://blog.martin-haehnel.de/2024/04/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 862 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4af51748f5e14bf3ae5636de68efd7c6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 862 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 861 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/31/203620.html" />
      <updated>2024-03-31T18:36:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/31/203620.html</id>
      <content type="html">&lt;p&gt;DailyDogo 861 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dcca3802a30d4982a030a50543ac9450.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 861 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 860 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/31/dailydogo.html" />
      <updated>2024-03-31T09:19:57Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 860 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/1a12c9e7bfe846cb80310c2e61a2fc7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 860 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 859 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/29/202228.html" />
      <updated>2024-03-29T18:22:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/29/202228.html</id>
      <content type="html">&lt;p&gt;DailyDogo 859 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/68867ea2897244bdbadfef34b6a0ec74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 859 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 858 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/29/dailydogo.html" />
      <updated>2024-03-29T08:36:59Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 858 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/image.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 858 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 857 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/28/dailydogo.html" />
      <updated>2024-03-28T06:04:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 857 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c1db7254bf9440139b02320bef74c9d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 857 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 856 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/26/dailydogo.html" />
      <updated>2024-03-26T20:38:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 856 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c9d04ca214bd4cdbb313f9b6ffc3b8cd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 856 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 855 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/25/dailydogo.html" />
      <updated>2024-03-25T20:38:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 855 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8397a63752e44c82979ef2904a6bc3cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 855 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 854 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/24/dailydogo.html" />
      <updated>2024-03-24T18:00:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 854 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/75d979adb42c4e02b27a8e9b2ad800b6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 854 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 853 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/23/200128.html" />
      <updated>2024-03-23T18:01:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/23/200128.html</id>
      <content type="html">&lt;p&gt;DailyDogo 853 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7da6ed7a88be445c95961c6ff33b0bd8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 853 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 852 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/23/dailydogo.html" />
      <updated>2024-03-23T10:16:06Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 852 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aee0bcd533de45c1950c007c0271d292.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 852 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 851 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/21/202007.html" />
      <updated>2024-03-21T18:20:07Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/21/202007.html</id>
      <content type="html">&lt;p&gt;DailyDogo 851 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b4c0629326e548eb866f95605beff7d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 851 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 850 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/21/dailydogo.html" />
      <updated>2024-03-20T22:03:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 850 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d6ce7c10c8d47fa8eb9273fe0a5c68a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 850 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 849 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/19/dailydogo.html" />
      <updated>2024-03-19T21:01:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 849 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6c23021190634c1bbb6440e78ca13c07.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 849 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 848 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/18/dailydogo.html" />
      <updated>2024-03-18T18:17:19Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 848 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/54dbe2f0feca4b60b92c196dfc449312.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 848 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 847 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/17/dailydogo.html" />
      <updated>2024-03-17T21:06:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 847 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4c894c66b9b4eacb27f2b22dbf997a2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 847 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 846 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/16/dailydogo.html" />
      <updated>2024-03-16T19:29:25Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 846 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a563926534ed4243a5eb7a2ceda03fc4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 846 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 845 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/15/dailydogo.html" />
      <updated>2024-03-15T20:27:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 845 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0280c7d379694409b36c7ffdd5259817.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 845 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 844 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/13/dailydogo.html" />
      <updated>2024-03-13T21:08:19Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 844 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e001e9da12a645e88ac244ceba2807b2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 844 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 843 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/12/212116.html" />
      <updated>2024-03-12T19:21:16Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/12/212116.html</id>
      <content type="html">&lt;p&gt;DailyDogo 843 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a49d66671d394b5296e9b5a1ce4621cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 843 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 843 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/12/dailydogo.html" />
      <updated>2024-03-12T19:21:06Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 843 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/17e5f71824ba4c8ea75142fa9f7c37c3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 843 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 842 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/10/dailydogo.html" />
      <updated>2024-03-10T18:11:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 842 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/564c6f9df8c340ea9d2c25438a76d509.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 842 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 841 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/09/dailydogo.html" />
      <updated>2024-03-09T18:01:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 841 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/502549d1863b4c8ba66772d61cac2e28.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 841 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 840 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/08/dailydogo.html" />
      <updated>2024-03-08T21:42:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 840 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc2dec7cdb9f43c199882f74fe61b964.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 840 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 839 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/07/dailydogo.html" />
      <updated>2024-03-07T18:30:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 839 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3d68efffb97045128638a16cc3582465.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 839 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 838 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/06/203133.html" />
      <updated>2024-03-06T18:31:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/06/203133.html</id>
      <content type="html">&lt;p&gt;DailyDogo 838 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c07b2c388c604911a968bb355d0eaf9d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 838 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 837 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/06/dailydogo.html" />
      <updated>2024-03-06T06:35:18Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 837 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/bbdc1888ac77463cbdc133fa684d0153.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 837 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 836 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/02/200714.html" />
      <updated>2024-03-02T18:07:14Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/02/200714.html</id>
      <content type="html">&lt;p&gt;DailyDogo 836 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5dc436660de04872b895a2b89ce2249b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 836 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 835 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/02/dailydogo.html" />
      <updated>2024-03-02T11:55:00Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 835 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e155ff976eb04f65a12a3465ffa875de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 835 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Keine Erklärungen....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/03/01/keine-erklrungen-ein.html" />
      <updated>2024-03-01T16:47:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/03/01/keine-erklrungen-ein.html</id>
      <content type="html">&lt;p&gt;Keine Erklärungen. Ein Grund: Mir fehlt zunehmend die eigene Stimme. Und vielleicht zum ersten Mal seit langem fehlt mir das semi-öffentliche Schreiben auf Deutsch. Oder das Schreiben überhaupt, was auf Nichtdeutsch nicht kommen will. Daher.&lt;/p&gt;
&lt;p&gt;Gleichzeitig die zunehmende Gewissheit, dass ich wirklich in einer parasitischen Beziehung zu Deutschland lebe: Ich lebe von der Möglichkeit für eine deutsche Firma aus der Ferne zu arbeiten in einem anderen Land in dem ich ohne dieses Privileg bei Weitem nicht so gut dastünde. Und bin ansonsten froh mit meinem Herkunftsland nicht viel am Hut zu haben.&lt;/p&gt;
&lt;p&gt;Überhaupt: am-Hut-Haben ist meine Stärke nicht. Man schlägt sich so durch, durch den Alltag. Es gibt viel zu tun, selbst in einer so kleinen Familie, wie es die meine ist: Partnerin und Hund und ich. Und gleichzeitig eine Wohnung, die nicht nur bezogen werden will, sondern ein Leben in sich verwalten will, gewissermaßen gleichzeitig, rekursiv, einander überlagernd, behindernd.&lt;/p&gt;
&lt;p&gt;Bezugspunkte sind es, die einen sehen lassen. Man lebte und dann bildete man sich eine Meinung und dann lebt man jetzt und zieht Bezüge, hält Dinge für gleich, möglich, wahrscheinlich, idiotisch, usw. Aber eben ob der Bezugspunkte. Und gleichzeitig komme ich nicht umhin festzustellen, dass das Leben jenseits eigener Kategorisierungen stattfindet und es wird zumindest behauptet, dass das auch funktioniert. Gemeint ist auch: Der Versuch hier etwas zum Konfliktpotenzial im Zwischenmenschlichen zu sagen. Worauf ich stolz bin: Dass es häufig nicht lang dauert sich zu vertragen. Wir nagen an den Resten unserer Reserven, ja ja. Aber mit uns kann man das machen, denken wir vielleicht nicht mal, aber leben wir, machen es mit uns.&lt;/p&gt;
&lt;p&gt;So der Umzug. Lediglich zu zweit. Von -34 Grad bis +2. Eine Strecke: 3h. Viele Wochen. Viele Strecken. Mehrere All-Nighter dabei. Schon auch stolz ja. Aber vor allem froh es überstanden zu haben.&lt;/p&gt;
&lt;p&gt;Muss los.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Keine Erklärungen. Ein Grund: Mir fehlt zunehmend die eigene Stimme. Und vielleicht zum ersten Mal seit langem fehlt mir das semi-öffentliche Schreiben auf Deutsch. Oder das Schreiben überhaupt, was auf Nichtdeutsch nicht kommen will. Daher. Gleichzeitig die zunehmende Gewissheit, dass ich wirklich in einer parasitischen Beziehung zu Deutschland lebe: Ich lebe von der Möglichkeit für eine deutsche Firma aus der Ferne zu arbeiten in einem anderen Land in dem ich ohne dieses Privileg bei Weitem nicht so gut dastünde. Und bin ansonsten froh mit meinem Herkunftsland nicht viel am Hut zu haben. Überhaupt: am-Hut-Haben ist meine Stärke nicht. Man schlägt sich so durch, durch den Alltag. Es gibt viel zu tun, selbst in einer so kleinen Familie, wie es die meine ist: Partnerin und Hund und ich. Und gleichzeitig eine Wohnung, die nicht nur bezogen werden will, sondern ein Leben in sich verwalten will, gewissermaßen gleichzeitig, rekursiv, einander überlagernd, behindernd. Bezugspunkte sind es, die einen sehen lassen. Man lebte und dann bildete man sich eine Meinung und dann lebt man jetzt und zieht Bezüge, hält Dinge für gleich, möglich, wahrscheinlich, idiotisch, usw. Aber eben ob der Bezugspunkte. Und gleichzeitig komme ich nicht umhin festzustellen, dass das Leben jenseits eigener Kategorisierungen stattfindet und es wird zumindest behauptet, dass das auch funktioniert. Gemeint ist auch: Der Versuch hier etwas zum Konfliktpotenzial im Zwischenmenschlichen zu sagen. Worauf ich stolz bin: Dass es häufig nicht lang dauert sich zu vertragen. Wir nagen an den Resten unserer Reserven, ja ja. Aber mit uns kann man das machen, denken wir vielleicht nicht mal, aber leben wir, machen es mit uns. So der Umzug. Lediglich zu zweit. Von -34 Grad bis +2. Eine Strecke: 3h. Viele Wochen. Viele Strecken. Mehrere All-Nighter dabei. Schon auch stolz ja. Aber vor allem froh es überstanden zu haben. Muss los.

        https://blog.martin-haehnel.de/2024/03/01/keine-erklrungen-ein.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 834 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/29/dailydogo.html" />
      <updated>2024-02-29T21:06:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 834 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0a039368a42b4b00aefb43d85157da3e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 834 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 833 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/28/200120.html" />
      <updated>2024-02-28T18:01:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/28/200120.html</id>
      <content type="html">&lt;p&gt;DailyDogo 833 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/3ddccd33eeca4391b4ca5b97e4e08495.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 833 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 832 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/28/dailydogo.html" />
      <updated>2024-02-28T12:02:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 832 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/aa2c3ce2fcfa4187b924705ef3ef06ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 832 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 831 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/26/dailydogo.html" />
      <updated>2024-02-26T21:33:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 831 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2d453ac2c51d4e7eb38905d8feaa2321.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 831 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 830 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/25/dailydogo.html" />
      <updated>2024-02-25T19:29:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 830 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/22e212aac8134802aa55d5287ae7d3da.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 830 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 829 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/24/233103.html" />
      <updated>2024-02-24T21:31:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/24/233103.html</id>
      <content type="html">&lt;p&gt;DailyDogo 829 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7a590859e54f442f89854f57f7cd28ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 829 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 828 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/24/dailydogo.html" />
      <updated>2024-02-23T23:22:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 828 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/15bb8b887c604978b6ff00389f58a8ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 828 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 827 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/22/dailydogo.html" />
      <updated>2024-02-22T19:00:17Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 827 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/32cc551cf909459f8988ca651d00408b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 827 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 826 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/21/dailydogo.html" />
      <updated>2024-02-21T21:05:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 826 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/945efd74fd8847b3b1be02acb13b4d62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 826 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 825 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/20/dailydogo.html" />
      <updated>2024-02-20T17:15:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 825 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/863bdf7b487849e1ade49640739fb574.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 825 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 824 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/19/dailydogo.html" />
      <updated>2024-02-19T18:31:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 824 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/65c3ecc535844f3d99d30960a7dd9171.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 824 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 823 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/18/dailydogo.html" />
      <updated>2024-02-18T18:00:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 823 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c997353f11c4a208ef85e0d4f84ac18.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 823 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 822 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/17/182920.html" />
      <updated>2024-02-17T16:29:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/17/182920.html</id>
      <content type="html">&lt;p&gt;DailyDogo 822 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/11165cbebe6040639a1440d28e43723c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 822 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 821 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/17/dailydogo.html" />
      <updated>2024-02-17T16:29:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 821 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/37a19b1b1a064a91a1d76b875f82b910.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 821 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 820 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/16/dailydogo.html" />
      <updated>2024-02-16T06:37:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 820 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f961f41194fb4a7a99812ef72c2655f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 820 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 819 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/15/dailydogo.html" />
      <updated>2024-02-15T06:32:50Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 819 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/55b12b4965fb4a14ac9b3effe469c056.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 819 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 818 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/14/dailydogo.html" />
      <updated>2024-02-14T09:53:32Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 818 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/9d46dc39739945a49859ca2ddce31a19.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 818 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 817 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/12/200413.html" />
      <updated>2024-02-12T18:04:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/12/200413.html</id>
      <content type="html">&lt;p&gt;DailyDogo 817 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/6b1dc226e665401e9f04525881ec9a44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 817 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 816 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/12/dailydogo.html" />
      <updated>2024-02-12T12:22:36Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 816 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/79dca50872a74532a6251f3f8fb04c8d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 816 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 815 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/10/dailydogo.html" />
      <updated>2024-02-10T18:24:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 815 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/71c50fcc421b4162bc83943cda82bcd9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 815 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 814 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/09/dailydogo.html" />
      <updated>2024-02-09T21:49:46Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 814 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/0e4964b613b24dcda25b08371869c5ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 814 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 813 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/08/201241.html" />
      <updated>2024-02-08T18:12:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/08/201241.html</id>
      <content type="html">&lt;p&gt;DailyDogo 813 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c42317df18824ec19968dbb52998afcb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 813 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 812 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/08/dailydogo.html" />
      <updated>2024-02-08T11:53:21Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 812 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f773600554dd42b3b7758e3dfdb11522.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 812 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 811 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/07/dailydogo.html" />
      <updated>2024-02-07T12:50:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 811 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a367ce4ded744005a7d2e8d8131da572.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 811 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 810 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/05/212012.html" />
      <updated>2024-02-05T19:20:12Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/05/212012.html</id>
      <content type="html">&lt;p&gt;DailyDogo 810 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/dc01868fa835456bbf55e41ba975d41c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 810 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 809 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/05/dailydogo.html" />
      <updated>2024-02-05T13:39:43Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 809 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e4b358b2b3e84ffebb52e4b822945213.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 809 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 808 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/04/dailydogo.html" />
      <updated>2024-02-03T23:24:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 808 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/24dd759097724d9bb18daa035138c5d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 808 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 807 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/02/dailydogo.html" />
      <updated>2024-02-02T20:06:48Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 807 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5932ae44c2704913b959e0217f504756.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 807 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 806 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/02/01/dailydogo.html" />
      <updated>2024-02-01T18:23:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/02/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 806 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b3924b39dd594c2f94f997a012defd4d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 806 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 805 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/31/dailydogo.html" />
      <updated>2024-01-31T21:24:24Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 805 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/fbc6c19c13ad4e2c8cf25737107a2468.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 805 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 804 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/30/dailydogo.html" />
      <updated>2024-01-30T19:12:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 804 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/b03214666868403b9b41bfc5fc6416a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 804 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 803 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/29/225528.html" />
      <updated>2024-01-29T20:55:28Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/29/225528.html</id>
      <content type="html">&lt;p&gt;DailyDogo 803 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/2541fb0e4072473cb87c4b9c4bb7918f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 803 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 802 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/29/dailydogo.html" />
      <updated>2024-01-29T06:28:06Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 802 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/058bf7111e2b44a8acdf031eb8a7c4a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 802 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 801 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/27/dailydogo.html" />
      <updated>2024-01-27T20:16:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 801 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4b2e9a8971be444bbd222ba998d0947f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 801 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 800 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/26/dailydogo.html" />
      <updated>2024-01-26T21:25:54Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 800 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/5c832f625a8c4fd5a0e0743113f369b7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 800 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 799 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/25/220113.html" />
      <updated>2024-01-25T20:01:13Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/25/220113.html</id>
      <content type="html">&lt;p&gt;DailyDogo 799 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/25c7a13b9c4c4764af0b6865ab7a3aa3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 799 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 798 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/25/dailydogo.html" />
      <updated>2024-01-25T06:23:44Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 798 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2fe55e3f90e4d36bcab0b0b20baeba8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 798 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 797 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/23/dailydogo.html" />
      <updated>2024-01-23T20:11:33Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 797 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/d3fa1d6c1077499f864a45b87bd1d681.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 797 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 796 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/22/221540.html" />
      <updated>2024-01-22T20:15:40Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/22/221540.html</id>
      <content type="html">&lt;p&gt;DailyDogo 796 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/f0b65024782e4547aad04ce167d36fe1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 796 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 795 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/22/dailydogo.html" />
      <updated>2024-01-22T07:01:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 795 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/c78656e9d801475c8bcca113860b27d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 795 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 794 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/21/dailydogo.html" />
      <updated>2024-01-21T11:09:51Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 794 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/8561da35cf6b4785a3121f3f8719137a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 794 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 793 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/19/dailydogo.html" />
      <updated>2024-01-19T20:16:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 793 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/379ef735987e4e44aad372c382505eb5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 793 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 792 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/18/dailydogo.html" />
      <updated>2024-01-18T20:24:09Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 792 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7c04cd482c734091be56d9411e8eaa44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 792 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 791 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/17/232441.html" />
      <updated>2024-01-17T21:24:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/17/232441.html</id>
      <content type="html">&lt;p&gt;DailyDogo 791 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/49bcb6dce954485b917e88b60d2388fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 791 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 790 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/17/dailydogo.html" />
      <updated>2024-01-17T15:00:20Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 790 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/40e90a4e3db54ee39472c583509b4f44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 790 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 789 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/16/dailydogo.html" />
      <updated>2024-01-16T00:08:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 789 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/a2662fe3405744f79b9361d807c5c422.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 789 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 788 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/14/dailydogo.html" />
      <updated>2024-01-14T12:01:04Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 788 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/00b48342b7c8478091f9fc8261b82075.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 788 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 787 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/13/dailydogo.html" />
      <updated>2024-01-13T00:10:05Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 787 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ac2210d1d5e547ecab4d9a84645b72dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 787 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 786 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/11/220545.html" />
      <updated>2024-01-11T20:05:45Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/11/220545.html</id>
      <content type="html">&lt;p&gt;DailyDogo 786 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7f04bd74a9cb4fb0ae4aebd758521fcf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 786 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 785 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/11/dailydogo.html" />
      <updated>2024-01-11T06:21:41Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 785 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9f8c8a91ae843b5981479237d4af31f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 785 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 784 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/09/dailydogo.html" />
      <updated>2024-01-09T18:02:02Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 784 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/7406903c957e4f378e45d0daf0b238f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 784 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 783 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/08/221538.html" />
      <updated>2024-01-08T20:15:38Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/08/221538.html</id>
      <content type="html">&lt;p&gt;DailyDogo 783 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/85f614d7a5ca4e96a36face725359fdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 783 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 782 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/08/dailydogo.html" />
      <updated>2024-01-08T10:32:31Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 782 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/168b650a82ac4d719349067fa1656afc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 782 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 781 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/06/dailydogo.html" />
      <updated>2024-01-06T18:45:03Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 781 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/4d8b377beecf42199875b2dba22c2c27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 781 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 780 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/05/dailydogo.html" />
      <updated>2024-01-05T21:58:34Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 780 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/ec829182aa9a4b21a4c93c609ef1ea45.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 780 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 779 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/04/dailydogo.html" />
      <updated>2024-01-04T20:33:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 779 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/e9be6859b8fd4570956cde69daf1ef05.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 779 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          This year had so...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/04/this-year-had.html" />
      <updated>2024-01-04T14:16:55Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/04/this-year-had.html</id>
      <content type="html">&lt;p&gt;This year had so much potential and after two tough years in a row, I was really looking forward to a better one. If I focus on myself, the year was &lt;em&gt;okay&lt;/em&gt;: I switched jobs for the better and worked on improving my overall approach to productivity. But as soon as I widen the circle even slightly, it becomes clear it was a bad year. There are no two ways about it: The year&#39;s end made it impossible to call it anything else.&lt;/p&gt;
&lt;h2 id=&quot;an-awful-end&quot;&gt;An Awful End&lt;/h2&gt;
&lt;p&gt;The year took its most challenging turn when my partner lost her job in December. It was sudden and unexpected, but she handled it with incredible grace and professionalism. Despite our frustrations with the political climate affecting jobs, we need to learn to adapt and find new paths. We will be fine, but there&#39;s a lingering sadness over losing the relative safety we felt through all these challenging years since the pandemic.&lt;/p&gt;
&lt;h2 id=&quot;health-concerns&quot;&gt;Health Concerns&lt;/h2&gt;
&lt;p&gt;Additionally, towards the end of the year, my grandparents&#39; health became more of a concern, reminding me to cherish every moment with them. I&#39;m particularly proud of my grandpa&#39;s bravery as he has started to undergo severe cancer treatment in December.&lt;/p&gt;
&lt;h2 id=&quot;christmas-woes&quot;&gt;Christmas Woes&lt;/h2&gt;
&lt;p&gt;Despite our careful planning and genuine excitement, Christmas turned out to be less than ideal. A series of small mishaps unfolded: the toilet in our train compartment was broken, we initially got the wrong type of hotel room, endured a terrible experience at a shopping mall, narrowly avoided a traffic accident, struggled with Napu&#39;s sound sensitivity that cost us a lot of sleep. I also fell ill on Christmas Eve, spending the day in the hotel room instead of with family. These issues, even though not that bad on their own, taken as one left us feeling quite upset. This was especially sad for me, because I had looked forward to the holiday in a way I hadn&#39;t in many years.&lt;/p&gt;
&lt;p&gt;However, I want to think there is a silver lining in this experience. We&#39;ve learned some valuable lessons for future holidays, like the benefits of taking a car train instead of driving over 800 kilometers ourselves and choosing to stay in a hotel for space to decompress and rest.&lt;/p&gt;
&lt;h2 id=&quot;brighter-moments&quot;&gt;Brighter Moments&lt;/h2&gt;
&lt;p&gt;Amidst these challenges, there were highlights in the first three quarters of the year. I&#39;m thrilled about my new job, which I started in July. I have not only nice colleagues, but nice bosses, too. The work environment is open to my ideas and the tasks are challenging but well suited to my skills.&lt;/p&gt;
&lt;p&gt;Our summer was wonderful, including a memorable trip to Finland&#39;s Perämeri National Park, visiting Kilpisjärvi once more and finally hiking through Malla&#39;s strict nature reserve. Perämeri is special, because it&#39;s challenging to visit (it consists of a group of islands and you need to hire a water taxi to get there).&lt;/p&gt;
&lt;p&gt;Beyond these trips, there were countless wonderful moments in our day-to-day life, too: solving jigsaw puzzles, watching TV, hiking day trails and collecting berries. Despite ups and downs, we had many opportunities to laugh and enjoy each other&#39;s company - and we did.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Two bowls full of blue berries are held in a forest environment. The hands are stained red from blue berry juice. In the background a dog is visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-4905.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;While interacting with Napu this year, I learned the importance of understanding trigger stacking, letting her make choices and providing her with a safe and positive environment to learn and grow. She was a joy to have with and around us.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A dog is laying belly up in front of sofa. There are toys and a chewing bone next to her head. She is watching into the camera.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-6842.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;h2 id=&quot;personal-growth&quot;&gt;Personal Growth&lt;/h2&gt;
&lt;p&gt;Even in a bad year there&#39;s things to learn and take with me into what comes next. Here&#39;s an incomplete list of some of the things I found valuable to have learned this year:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I am pretty sure that I&#39;d like to focus my efforts to grow professionally in the direction of code quality and software architecture. This is not the same as trying to become a tech lead or manager. And it&#39;s good to know the difference.&lt;/li&gt;
&lt;li&gt;I have learned that it&#39;s okay to watch VODs of the same Slay The Spire Streamers on Youtube while playing Dead Cells. This is my way to relax. &lt;strong&gt;I don&#39;t need to impress anyone while relaxing.&lt;/strong&gt; If this is what my brain wants to do after a hard day, that&#39;s fine.&lt;/li&gt;
&lt;li&gt;Between 10 am and 1 pm is my crunch time. This is when my brain is the most capable and my environment permits the most undistracted work. It hasn&#39;t always been that way. I was able to do some of my best work in the evenings before but this has changed. I feel like it&#39;s immensely helpful to know when I can do my best work, because that means I know now which time slot needs to be protected the most.&lt;/li&gt;
&lt;li&gt;I learned that positive emotions make the biggest difference in habit formation. If I can bring myself to authentically feel good about doing a thing, chances are high(er) that I will do the same thing when I encounter the same trigger later. The old view is that habits form through repetition alone, but it&#39;s actually the immediate positive feedback that I can induce myself by celebrating right after I did a thing that makes all the difference.&lt;/li&gt;
&lt;li&gt;Skipping breakfast as a form of intermittent fasting is actually not that hard.&lt;/li&gt;
&lt;li&gt;LLMs may be ethically and environmentally questionable but they are tools that are insanely helpful. They are here to stay. I have found great use cases and have had a chance to play around with more advanced features thanks to a GPTPlus subscription through my company.&lt;/li&gt;
&lt;li&gt;I took steps to improve my productivity setup this year and a couple of things that I feel like I finally understood:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Use one tool to keep a certain kind of data&lt;/strong&gt; (Task? OmniFocus, Note? Obsidian, Event? Fantastical. Misc. Reminder I can&#39;t miss? Due.), link tasks and notes, but don&#39;t write notes into your task management app and reminders for tasks or notes into your calendar. Have bright, clear lines what tool you use for what and remove redundancies ruthlessly.&lt;/li&gt;
&lt;li&gt;Use only what you need, when you need it. Sometimes I only need a note. Sometimes I only need a reminder in Due, sometimes I need to do elaborate planning and tracking in OmniFocus, with a canvas and lots of notes in Obsidian, time blocking in my calendar, etc. &lt;strong&gt;The important point is that the ratio of work to &amp;quot;meta work&amp;quot; should be correct.&lt;/strong&gt; If I work more to organize my work than actually doing my tasks I&#39;m in trouble.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;looking-forward&quot;&gt;Looking Forward&lt;/h2&gt;
&lt;p&gt;Despite 2023&#39;s terrible end, there were moments of happiness and growth. However, I&#39;m approaching 2024 with cautious optimism.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;I man is raising a thermos cup of coffee into the camera while sitting in a hilly forested nature setting, next to a dog and a woman.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/img-5107.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;What makes a good year is a smaller gap between my expectations and reality, leading to fewer disappointments. The new year will be about managing expectations and rolling with the punches. I&#39;m prepared to do both!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/01/06/previously-this-last.html&quot;&gt;Previously.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2025/01/01/recap.html&quot;&gt;Forward.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        This year had so much potential and after two tough years in a row, I was really looking forward to a better one. If I focus on myself, the year was okay: I switched jobs for the better and worked on improving my overall approach to productivity. But as soon as I widen the circle even slightly, it becomes clear it was a bad year. There are no two ways about it: The year&#39;s end made it impossible to call it anything else. An Awful End The year took its most challenging turn when my partner lost her job in December. It was sudden and unexpected, but she handled it with incredible grace and professionalism. Despite our frustrations with the political climate affecting jobs, we need to learn to adapt and find new paths. We will be fine, but there&#39;s a lingering sadness over losing the relative safety we felt through all these challenging years since the pandemic. Health Concerns Additionally, towards the end of the year, my grandparents&#39; health became more of a concern, reminding me to cherish every moment with them. I&#39;m particularly proud of my grandpa&#39;s bravery as he has started to undergo severe cancer treatment in December. Christmas Woes Despite our careful planning and genuine excitement, Christmas turned out to be less than ideal. A series of small mishaps unfolded: the toilet in our train compartment was broken, we initially got the wrong type of hotel room, endured a terrible experience at a shopping mall, narrowly avoided a traffic accident, struggled with Napu&#39;s sound sensitivity that cost us a lot of sleep. I also fell ill on Christmas Eve, spending the day in the hotel room instead of with family. These issues, even though not that bad on their own, taken as one left us feeling quite upset. This was especially sad for me, because I had looked forward to the holiday in a way I hadn&#39;t in many years. However, I want to think there is a silver lining in this experience. We&#39;ve learned some valuable lessons for future holidays, like the benefits of taking a car train instead of driving over 800 kilometers ourselves and choosing to stay in a hotel for space to decompress and rest. Brighter Moments Amidst these challenges, there were highlights in the first three quarters of the year. I&#39;m thrilled about my new job, which I started in July. I have not only nice colleagues, but nice bosses, too. The work environment is open to my ideas and the tasks are challenging but well suited to my skills. Our summer was wonderful, including a memorable trip to Finland&#39;s Perämeri National Park, visiting Kilpisjärvi once more and finally hiking through Malla&#39;s strict nature reserve. Perämeri is special, because it&#39;s challenging to visit (it consists of a group of islands and you need to hire a water taxi to get there). Beyond these trips, there were countless wonderful moments in our day-to-day life, too: solving jigsaw puzzles, watching TV, hiking day trails and collecting berries. Despite ups and downs, we had many opportunities to laugh and enjoy each other&#39;s company - and we did. While interacting with Napu this year, I learned the importance of understanding trigger stacking, letting her make choices and providing her with a safe and positive environment to learn and grow. She was a joy to have with and around us. Personal Growth Even in a bad year there&#39;s things to learn and take with me into what comes next. Here&#39;s an incomplete list of some of the things I found valuable to have learned this year: I am pretty sure that I&#39;d like to focus my efforts to grow professionally in the direction of code quality and software architecture. This is not the same as trying to become a tech lead or manager. And it&#39;s good to know the difference. I have learned that it&#39;s okay to watch VODs of the same Slay The Spire Streamers on Youtube while playing Dead Cells. This is my way to relax. I don&#39;t need to impress anyone while relaxing. If this is what my brain wants to do after a hard day, that&#39;s fine. Between 10 am and 1 pm is my crunch time. This is when my brain is the most capable and my environment permits the most undistracted work. It hasn&#39;t always been that way. I was able to do some of my best work in the evenings before but this has changed. I feel like it&#39;s immensely helpful to know when I can do my best work, because that means I know now which time slot needs to be protected the most. I learned that positive emotions make the biggest difference in habit formation. If I can bring myself to authentically feel good about doing a thing, chances are high(er) that I will do the same thing when I encounter the same trigger later. The old view is that habits form through repetition alone, but it&#39;s actually the immediate positive feedback that I can induce myself by celebrating right after I did a thing that makes all the difference. Skipping breakfast as a form of intermittent fasting is actually not that hard. LLMs may be ethically and environmentally questionable but they are tools that are insanely helpful. They are here to stay. I have found great use cases and have had a chance to play around with more advanced features thanks to a GPTPlus subscription through my company. I took steps to improve my productivity setup this year and a couple of things that I feel like I finally understood: Use one tool to keep a certain kind of data (Task? OmniFocus, Note? Obsidian, Event? Fantastical. Misc. Reminder I can&#39;t miss? Due.), link tasks and notes, but don&#39;t write notes into your task management app and reminders for tasks or notes into your calendar. Have bright, clear lines what tool you use for what and remove redundancies ruthlessly. Use only what you need, when you need it. Sometimes I only need a note. Sometimes I only need a reminder in Due, sometimes I need to do elaborate planning and tracking in OmniFocus, with a canvas and lots of notes in Obsidian, time blocking in my calendar, etc. The important point is that the ratio of work to &amp;quot;meta work&amp;quot; should be correct. If I work more to organize my work than actually doing my tasks I&#39;m in trouble. Looking Forward Despite 2023&#39;s terrible end, there were moments of happiness and growth. However, I&#39;m approaching 2024 with cautious optimism. What makes a good year is a smaller gap between my expectations and reality, leading to fewer disappointments. The new year will be about managing expectations and rolling with the punches. I&#39;m prepared to do both! Previously. Forward.

        https://blog.martin-haehnel.de/2024/01/04/this-year-had.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 778 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/03/dailydogo.html" />
      <updated>2024-01-03T21:14:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 778 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/12cdb9118df54435b73bcbe8465bafdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 778 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 777 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/02/dailydogo.html" />
      <updated>2024-01-02T18:13:37Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 777 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/77c0a6f5e70f446f90b1cb8682e17604.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 777 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 776 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2024/01/01/dailydogo.html" />
      <updated>2024-01-01T19:47:39Z</updated>
      <id>https://blog.martin-haehnel.de/2024/01/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 776 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2024/864369a422f44e79bd85ef39e6dc2a7e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 776 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 775 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/31/222328.html" />
      <updated>2023-12-31T20:23:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/31/222328.html</id>
      <content type="html">&lt;p&gt;DailyDogo 775 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbd9ebc0d1c54869b1046a6b3630e596.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 775 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 774 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/31/dailydogo.html" />
      <updated>2023-12-30T22:13:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 774 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/09521a9336a447dfb16e77c9d9c24451.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 774 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 773 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/29/223147.html" />
      <updated>2023-12-29T20:31:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/29/223147.html</id>
      <content type="html">&lt;p&gt;DailyDogo 773 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed0108a766974676bed18da98685f47d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 773 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 772 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/29/dailydogo.html" />
      <updated>2023-12-29T06:36:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 772 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cf626851c81b46d984748a7d009cf7f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 772 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s maybe a little...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/28/its-maybe-a.html" />
      <updated>2023-12-28T19:13:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/28/its-maybe-a.html</id>
      <content type="html">&lt;p&gt;It&#39;s maybe a little bit weird to start writing again by pointing to &lt;a href=&quot;http://jakobgreenfeld.com/4000-weeks&quot;&gt;a post&lt;/a&gt; by Jakob Greenfeld I disagree strongly with. It&#39;s about a book called 4000 Weeks by Oliver Burkeman. I&#39;m not going to write a strong rebuttal about all of the claims in the post but rather focus on one important point and also add a few more general thoughts. But let&#39;s start with a little context:&lt;/p&gt;
&lt;p&gt;I do think embracing the limits of life to focus on what we can do is a good thing. &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/13/impermanence-and-improvement.html&quot;&gt;I had written about the book myself a while ago.&lt;/a&gt; My main points were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;I have to play the hand that I was dealt and resources (and everything is a resource) are not available in endless supply. If you take these two things together, it makes sense to go for a &lt;a href=&quot;https://en.wikipedia.org/wiki/Satisficing&quot;&gt;satisficist&lt;/a&gt; way of life.&amp;quot; - Or: privilege is not evenly distributed, but you can still forge a life out of what you got (just not every life).&lt;/li&gt;
&lt;li&gt;&amp;quot;My here and now is not merely a transitory state in between the lacking status quo and an amazing future. Instead of improving things in the present moment, I would endure certain things simply because I defined my present situation as something that didn’t matter in the future.&amp;quot; Or: I am allowed to improve things in the here and now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think that Greenfeld&#39;s post sees fallacies in Burkeman&#39;s book where I see a not very generous reader. Greenfeld is a &amp;quot;hustle culture&amp;quot; kind of person whom I follow for useful notes on self help and productivity books but I do not always agree with him. One thing stood out as interesting to me in his post:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A cheap dinner with my parents is infinitely more meaningful than some networking dinner with strangers that costs me a fortune. In short, the amount of time/money you spend on something (and how much of it you possess) doesn’t dictate the meaning of anything.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a counterpoint against Burkeman&#39;s claim that, because of the limited life span we possess, what we choose to spend our time on - and how much of it on what - becomes meaningful and defines our lives.&lt;/p&gt;
&lt;p&gt;Greenfeld says that time = money. He then gives an example where spending relatively little money on an event doesn&#39;t mean that that event couldn&#39;t be more meaningful than another event that you spent more on. What Greenfeld has discovered is that you can&#39;t compare single events like this but must compare topics: The question is how do you spend your time - over your lifetime? Comparing two singular events doesn&#39;t make sense. But whether you spend your life mostly at networking dinners vs. mostly with your family does. This doesn&#39;t mean that when you have disregarded an important aspect of your life that choosing to spend more time on it - even if at first it&#39;s just a small amount - doesn&#39;t feel meaningful. But the meaningfulness doesn&#39;t come from it being a short event but rather from trying to rectify the neglect (or maybe exploring new frontiers).&lt;/p&gt;
&lt;p&gt;I do think it can be worth it to read opposing opinions like this because it strengthens my viewpoint, it points to flaws in my approach or simply just widens my horizon. I am not convinced that what Greenfeld writes points out fallacies in Burkeman&#39;s writing, but it still made me reconsider my own views, which is valuable.&lt;/p&gt;
&lt;p&gt;The quoted passage for example made me think more deeply about my claim &amp;quot;everything is a resource&amp;quot; and how that relates to the sometimes very meaningful singular moments of life, as I&#39;ve tried to untangle above. I think this passage especially hooked me for its relationship to my tendencies of sometimes living too much for a future that may never become a reality (it&#39;s a risky investment strategy to always reinvest and never reap rewards). And that meaningful moments exist, reminds me how important it is to take advantage of choosing to be present for the things I am making my life about.&lt;/p&gt;
&lt;p&gt;This post is also valuable because it&#39;s an example of a person who is unwilling or maybe (as of yet) unable to recognize life&#39;s limits. These people exist out there and they may not be easily convinced of the opposite. That&#39;s useful to keep in mind. Greenfeld and I are holding different values that&#39;s for sure and since values are personal one may be persuaded to think this is just a battle between differing subjective viewpoints. But the objective realities of life  - e.g. that your lifetime is limited and being more productive doesn&#39;t make life last longer or spending time fiddling with your productivity systems doesn&#39;t make you enjoy the important moments more - do not care if you would like to forget about these facts (and rather work hard to grow your business or whatever). You will have to come to terms with them - if you like to contemplate these things, or not.&lt;/p&gt;
&lt;p&gt;The post and its author is a useful counter example to my own life&#39;s plan: A (relatively) small but reflected life in the here and now is more rewarding, more livable, more rational, more emotionally honest and also more ethically sound, than any sweeping pronouncements of a &amp;quot;big life&amp;quot;™ could ever be.&lt;/p&gt;
&lt;p&gt;My mental model predicts that sooner or later everyone will have to open their eyes to the small life they are actually living and embrace it - or failing that will live with a lot of avoidable cognitive dissonance. Greenfeld suggests the opposite. We&#39;ll see whose bet holds.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/13/impermanence-and-improvement.html&quot;&gt;Previously.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s maybe a little bit weird to start writing again by pointing to a post by Jakob Greenfeld I disagree strongly with. It&#39;s about a book called 4000 Weeks by Oliver Burkeman. I&#39;m not going to write a strong rebuttal about all of the claims in the post but rather focus on one important point and also add a few more general thoughts. But let&#39;s start with a little context: I do think embracing the limits of life to focus on what we can do is a good thing. I had written about the book myself a while ago. My main points were: &amp;quot;I have to play the hand that I was dealt and resources (and everything is a resource) are not available in endless supply. If you take these two things together, it makes sense to go for a satisficist way of life.&amp;quot; - Or: privilege is not evenly distributed, but you can still forge a life out of what you got (just not every life). &amp;quot;My here and now is not merely a transitory state in between the lacking status quo and an amazing future. Instead of improving things in the present moment, I would endure certain things simply because I defined my present situation as something that didn’t matter in the future.&amp;quot; Or: I am allowed to improve things in the here and now. I think that Greenfeld&#39;s post sees fallacies in Burkeman&#39;s book where I see a not very generous reader. Greenfeld is a &amp;quot;hustle culture&amp;quot; kind of person whom I follow for useful notes on self help and productivity books but I do not always agree with him. One thing stood out as interesting to me in his post: A cheap dinner with my parents is infinitely more meaningful than some networking dinner with strangers that costs me a fortune. In short, the amount of time/money you spend on something (and how much of it you possess) doesn’t dictate the meaning of anything. This is a counterpoint against Burkeman&#39;s claim that, because of the limited life span we possess, what we choose to spend our time on - and how much of it on what - becomes meaningful and defines our lives. Greenfeld says that time = money. He then gives an example where spending relatively little money on an event doesn&#39;t mean that that event couldn&#39;t be more meaningful than another event that you spent more on. What Greenfeld has discovered is that you can&#39;t compare single events like this but must compare topics: The question is how do you spend your time - over your lifetime? Comparing two singular events doesn&#39;t make sense. But whether you spend your life mostly at networking dinners vs. mostly with your family does. This doesn&#39;t mean that when you have disregarded an important aspect of your life that choosing to spend more time on it - even if at first it&#39;s just a small amount - doesn&#39;t feel meaningful. But the meaningfulness doesn&#39;t come from it being a short event but rather from trying to rectify the neglect (or maybe exploring new frontiers). I do think it can be worth it to read opposing opinions like this because it strengthens my viewpoint, it points to flaws in my approach or simply just widens my horizon. I am not convinced that what Greenfeld writes points out fallacies in Burkeman&#39;s writing, but it still made me reconsider my own views, which is valuable. The quoted passage for example made me think more deeply about my claim &amp;quot;everything is a resource&amp;quot; and how that relates to the sometimes very meaningful singular moments of life, as I&#39;ve tried to untangle above. I think this passage especially hooked me for its relationship to my tendencies of sometimes living too much for a future that may never become a reality (it&#39;s a risky investment strategy to always reinvest and never reap rewards). And that meaningful moments exist, reminds me how important it is to take advantage of choosing to be present for the things I am making my life about. This post is also valuable because it&#39;s an example of a person who is unwilling or maybe (as of yet) unable to recognize life&#39;s limits. These people exist out there and they may not be easily convinced of the opposite. That&#39;s useful to keep in mind. Greenfeld and I are holding different values that&#39;s for sure and since values are personal one may be persuaded to think this is just a battle between differing subjective viewpoints. But the objective realities of life - e.g. that your lifetime is limited and being more productive doesn&#39;t make life last longer or spending time fiddling with your productivity systems doesn&#39;t make you enjoy the important moments more - do not care if you would like to forget about these facts (and rather work hard to grow your business or whatever). You will have to come to terms with them - if you like to contemplate these things, or not. The post and its author is a useful counter example to my own life&#39;s plan: A (relatively) small but reflected life in the here and now is more rewarding, more livable, more rational, more emotionally honest and also more ethically sound, than any sweeping pronouncements of a &amp;quot;big life&amp;quot;™ could ever be. My mental model predicts that sooner or later everyone will have to open their eyes to the small life they are actually living and embrace it - or failing that will live with a lot of avoidable cognitive dissonance. Greenfeld suggests the opposite. We&#39;ll see whose bet holds. Previously.

        https://blog.martin-haehnel.de/2023/12/28/its-maybe-a.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 771 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/27/224531.html" />
      <updated>2023-12-27T20:45:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/27/224531.html</id>
      <content type="html">&lt;p&gt;DailyDogo 771 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5e01e7fb6c0d447da99718bde68c2e91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 771 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 770 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/27/dailydogo.html" />
      <updated>2023-12-27T20:45:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 770 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2969c3cc285047dc8d4a848ee7909e1d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 770 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 769 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/24/dailydogo-a-two.html" />
      <updated>2023-12-24T19:14:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/24/dailydogo-a-two.html</id>
      <content type="html">&lt;p&gt;DailyDogo 769 🐶&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;https://blog.martin-haehnel.de/uploads/2023/img-7964.mov&quot; muted=&quot;&quot; autoplay=&quot;&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 769 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 768 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/23/dailydogo.html" />
      <updated>2023-12-23T20:58:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 768 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/90eeeb6531964331b33b3afc5847b378.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 768 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 767 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/22/230434.html" />
      <updated>2023-12-22T21:04:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/22/230434.html</id>
      <content type="html">&lt;p&gt;DailyDogo 767 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce0a9113186a40bcbc38490b2ba0b05a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 767 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 766 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/22/dailydogo.html" />
      <updated>2023-12-22T08:05:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 766 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3bfba0ed6e694c90b632c81a040bd5d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 766 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 765 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/21/dailydogo.html" />
      <updated>2023-12-21T06:28:16Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 765 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/44a3560eed824073aaf0883549b3b552.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 765 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 764 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/19/dailydogo.html" />
      <updated>2023-12-19T18:02:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 764 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00925c8ba5234f15b32e25f56ac0f589.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 764 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 763 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/18/dailydogo.html" />
      <updated>2023-12-18T20:18:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 763 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/baa73e8e869a4157b9e94dd46e5fc3bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 763 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 762 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/17/dailydogo.html" />
      <updated>2023-12-17T20:04:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 762 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/37aacb5304524f8daa4a601090e542d3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 762 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 761 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/16/224238.html" />
      <updated>2023-12-16T20:42:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/16/224238.html</id>
      <content type="html">&lt;p&gt;DailyDogo 761 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/14e5a88ee9f4435fbfa43ee8fb9df35a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 761 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 760 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/16/dailydogo.html" />
      <updated>2023-12-15T23:35:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 760 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/df13e0ca62604527a93c605e4115369c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 760 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 759 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/14/dailydogo.html" />
      <updated>2023-12-14T09:58:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 759 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f0ad0ab575c463099c40f251bffc75c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 759 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 758 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/10/220322.html" />
      <updated>2023-12-10T20:03:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/10/220322.html</id>
      <content type="html">&lt;p&gt;DailyDogo 758 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b9d0531326a84a12b32c2b8467370fd4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 758 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 757 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/10/dailydogo.html" />
      <updated>2023-12-10T07:49:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 757 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c03d4a3dc7fa4be492ff5ad9623cbdcc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 757 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 756 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/08/201126.html" />
      <updated>2023-12-08T18:11:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/08/201126.html</id>
      <content type="html">&lt;p&gt;DailyDogo 756 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A top-down photograph of a black and white dog laying on its back, with its belly up, next to a couch.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/995bf48ca3a24a57ae5748431e196637.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 756 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 755 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/08/dailydogo.html" />
      <updated>2023-12-08T06:01:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 755 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d708aa2d5eb47928f2c6e2af8ff7daf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 755 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 754 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/06/213642.html" />
      <updated>2023-12-06T19:36:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/06/213642.html</id>
      <content type="html">&lt;p&gt;DailyDogo 754 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4905ce5e8b6f46de94728437fd357991.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 754 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 753 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/06/dailydogo.html" />
      <updated>2023-12-06T11:30:51Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 753 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/261faeea062945f29f7571c875164c0a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 753 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 752 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/04/dailydogo.html" />
      <updated>2023-12-04T19:13:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 752 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ad725b2f3ab14cbeb85eac9ce72e05ef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 752 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 751 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/03/dailydogo.html" />
      <updated>2023-12-03T20:42:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 751 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/204c74ae8f7e4be6bf43a82424b2e2d9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 751 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 750 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/02/dailydogo.html" />
      <updated>2023-12-02T19:26:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 750 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9be7591309ad4bccbed3e9da78816a11.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 750 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 749 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/01/dailydogo.html" />
      <updated>2023-12-01T18:49:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 749 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/665d69e92bd94908aadae2a96c12d9df.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 749 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          &gt; [!note]- Changelog...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/12/01/via-app-defaults.html" />
      <updated>2023-12-01T11:31:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/12/01/via-app-defaults.html</id>
      <content type="html">&lt;details class=&quot;message-box&quot;&gt;&lt;summary&gt;Changelog&lt;/summary&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2023-12-01 - Created this note&lt;/li&gt;
&lt;li&gt;2025-02-02 - Updated the list&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;p&gt;Via &lt;a href=&quot;https://defaults.rknight.me&quot;&gt;App Defaults&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are mine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mail Client: Apple Mail&lt;/li&gt;
&lt;li&gt;Notes: &lt;a href=&quot;https://obsidian.md/&quot;&gt;Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;To-Do: Apple Reminders&lt;/li&gt;
&lt;li&gt;Photo Shooting: Apple&#39;s camera app&lt;/li&gt;
&lt;li&gt;Photo Management: Google Photos (and Apple Photos)&lt;/li&gt;
&lt;li&gt;Calendar: Apple Calendar&lt;/li&gt;
&lt;li&gt;Cloud File Storage: Apple iCloud, Dropbox&lt;/li&gt;
&lt;li&gt;RSS: &lt;a href=&quot;https://readwise.io/read&quot;&gt;Readwise Reader&lt;/a&gt; &amp;quot;Feed&amp;quot; feature&lt;/li&gt;
&lt;li&gt;Contacts: Apple Contacts&lt;/li&gt;
&lt;li&gt;Browser: Safari for private, Chrome for work, Firefox for work&lt;/li&gt;
&lt;li&gt;Chat: Whatsapp, iMessage, GChat (for work)&lt;/li&gt;
&lt;li&gt;Read It Later: Readwise Reader&lt;/li&gt;
&lt;li&gt;Word Processing: Apple Pages&lt;/li&gt;
&lt;li&gt;Spreadsheets: Apple Numbers&lt;/li&gt;
&lt;li&gt;Presentations: &lt;a href=&quot;https://www.deckset.com/&quot;&gt;Deckset&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Shopping Lists: Apple Reminders&lt;/li&gt;
&lt;li&gt;Meal Planning: &lt;a href=&quot;https://www.paprikaapp.com/&quot;&gt;Paprika&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Budgeting and Personal Finance: &lt;a href=&quot;https://actualbudget.org&quot;&gt;Actual Budget&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;News: Readwise Reader, Mastodon (via &lt;a href=&quot;https://home.omg.lol/&quot;&gt;omg.lol&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Music: Youtube Music&lt;/li&gt;
&lt;li&gt;Podcasts: &lt;a href=&quot;https://overcast.fm/&quot;&gt;Overcast&lt;/a&gt; (old version)&lt;/li&gt;
&lt;li&gt;Password Management: &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Code Editor: PHPStorm and VSCode&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Changelog 2023-12-01 - Created this note 2025-02-02 - Updated the list Via App Defaults. Here are mine: Mail Client: Apple Mail Notes: Obsidian To-Do: Apple Reminders Photo Shooting: Apple&#39;s camera app Photo Management: Google Photos (and Apple Photos) Calendar: Apple Calendar Cloud File Storage: Apple iCloud, Dropbox RSS: Readwise Reader &amp;quot;Feed&amp;quot; feature Contacts: Apple Contacts Browser: Safari for private, Chrome for work, Firefox for work Chat: Whatsapp, iMessage, GChat (for work) Read It Later: Readwise Reader Word Processing: Apple Pages Spreadsheets: Apple Numbers Presentations: Deckset Shopping Lists: Apple Reminders Meal Planning: Paprika Budgeting and Personal Finance: Actual Budget News: Readwise Reader, Mastodon (via omg.lol) Music: Youtube Music Podcasts: Overcast (old version) Password Management: 1Password Code Editor: PHPStorm and VSCode

        https://blog.martin-haehnel.de/2023/12/01/via-app-defaults.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 748 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/30/dailydogo.html" />
      <updated>2023-11-30T19:39:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 748 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f8169f2380945cf83e9936b610462ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 748 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 747 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/29/dailydogo.html" />
      <updated>2023-11-29T18:35:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 747 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/76a0311fabea43b2a41801f370dd875a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 747 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 746 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/28/dailydogo.html" />
      <updated>2023-11-28T21:45:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 746 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/da4df5430bd246f2b7b65587cbe6cfa9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 746 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          An opinion is not an...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/28/an-opinion-is.html" />
      <updated>2023-11-28T08:10:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/28/an-opinion-is.html</id>
      <content type="html">&lt;p&gt;An opinion is not an explanation of said opinion. Nor is trying to find an explanation for a thing already an opinion. Explanations are not a threat. You are allowed to disagree with them. You are allowed to try to find an explanation and still disagree with the status quo. Wanting to understand what&#39;s going on doesn&#39;t make you an enemy.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        An opinion is not an explanation of said opinion. Nor is trying to find an explanation for a thing already an opinion. Explanations are not a threat. You are allowed to disagree with them. You are allowed to try to find an explanation and still disagree with the status quo. Wanting to understand what&#39;s going on doesn&#39;t make you an enemy.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 745 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/27/234046.html" />
      <updated>2023-11-27T21:40:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/27/234046.html</id>
      <content type="html">&lt;p&gt;DailyDogo 745 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/294e6ae97b4041b887cd17c0b0846212.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 745 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I bought a(n...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/27/i-bought-an.html" />
      <updated>2023-11-27T15:59:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/27/i-bought-an.html</id>
      <content type="html">&lt;p&gt;I bought a(n outliner app called) &lt;a href=&quot;https://www.hogbaysoftware.com/bike/&quot;&gt;Bike&lt;/a&gt; this week and am eager to test it out.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I bought a(n outliner app called) Bike this week and am eager to test it out.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 744 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/27/dailydogo.html" />
      <updated>2023-11-27T06:03:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 744 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c52b07f4d0fd4562be419fa80abe0a93.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 744 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 743 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/25/dailydogo.html" />
      <updated>2023-11-25T21:31:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 743 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7ffb07e667f84e629a77140f67d36636.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 743 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 742 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/24/dailydogo.html" />
      <updated>2023-11-23T22:09:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 742 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bc6ab6b2b64142ad904c9d46313f9f1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 742 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 741 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/22/dailydogo.html" />
      <updated>2023-11-22T20:15:01Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 741 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/177c573ad00946a1bea865cbb6bd69b5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 741 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 740 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/21/dailydogo.html" />
      <updated>2023-11-21T20:30:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 740 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2f1225d7a58e4e5abf45889e4434c940.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 740 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 739 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/20/dailydogo.html" />
      <updated>2023-11-20T20:15:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 739 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/251bc9be46164aff80f38f31dc241bf1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 739 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 738 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/19/dailydogo.html" />
      <updated>2023-11-19T20:11:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 738 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4859fc2c8c4671b03766045e73b193.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 738 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 737 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/18/dailydogo.html" />
      <updated>2023-11-18T20:20:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 737 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3a248c646c3c4fb89d0d018b0cc151a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 737 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 736 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/17/dailydogo.html" />
      <updated>2023-11-17T20:02:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 736 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3073cb62e2ea4e879ca926646babaf90.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 736 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 735 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/16/232338.html" />
      <updated>2023-11-16T21:23:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/16/232338.html</id>
      <content type="html">&lt;p&gt;DailyDogo 735 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e8262f0b87d54991b9b918b36372094a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 735 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 734 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/16/dailydogo.html" />
      <updated>2023-11-16T05:57:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 734 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3a7ecba0f4d48eb94417d43cef0c9e6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 734 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 733 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/14/dailydogo.html" />
      <updated>2023-11-14T20:04:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 733 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9310dafe4e047118a243288f8a9d883.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 733 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 732 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/13/221130.html" />
      <updated>2023-11-13T20:11:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/13/221130.html</id>
      <content type="html">&lt;p&gt;DailyDogo 732 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/96f95e47e9f348d9a148b7b34a950a9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 732 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 731 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/13/dailydogo.html" />
      <updated>2023-11-13T06:36:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 731 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8682dbfd38f34debbb850eb927b70025.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 731 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Quick little story:...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/11/quick-little-story.html" />
      <updated>2023-11-11T12:24:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/11/quick-little-story.html</id>
      <content type="html">&lt;p&gt;Quick little story: I was working on a relatively big task to duplicate a bunch of data in a system I barely know. Now, the biggest problem here was that the data in question was hierarchical sql data. That makes it tricky because relational tables (rows and columns) are not well suited to make it easy to traverse such trees. You could relatively easily use a migration logger functionality and click through the UI on the backend to record the sql that you need to migrate this data. But this gets messy quick and can go easily wrong. The more data you need to duplicate the more important it is that you do the right thing for an increasingly long sequence of manual actions. Also there is cleanup necessary afterwards, since the migration logger is not optimizing its lightly abstracted sql statements well. On top of that, I could not find a good interface to program my migration against either. It seemed that my options were:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;use the UI and record the changes using the migration logger&lt;/li&gt;
&lt;li&gt;write what you need using raw sql yourself&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I decided to go with option 2. I found a great solution that did not require a nested set approach called a recursive common table expression. I felt like a genius. I also was sitting on my high horse, &amp;quot;How did no one ever come up with a good API for doing common things like: copying this entity over onto this branch? Well, I guess I have to do it myself…&amp;quot;&lt;/p&gt;
&lt;p&gt;Even though progress was made to create migration helper functionality, it was slow and I had lots of questions regarding the structure of the data I was supposed to duplicate.&lt;/p&gt;
&lt;p&gt;Yesterday my boss took 2 hours of his time to look at the problem with me. He pointed out that what I had been doing for the last three days was unnecessary. Of course, what could be done in the UI in the backend could also be accomplished programmatically. It wasn&#39;t even that hard. It had all the scaffolding for customization of the process I could have ever wanted. This will allow me to write a readable migration in a few hundred lines, with no later cleanup necessary. We solved a big chunk of my problem in no time.&lt;/p&gt;
&lt;p&gt;I was embarrassed. Not only did I underestimate my colleagues and the maintainers before me, I also underestimated the system and its capabilities. I felt especially bad, because I thought I had done the right thing, like asking many questions and communicating with the project management why there was such a delay. I thought I was dealing with a hard problem - and in a vacuum it actually was a hard problem - but instead I just didn&#39;t know where to look or what to ask.&lt;/p&gt;
&lt;p&gt;It&#39;s a new day and I think I take a bunch of lessons from this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ask more directly: Do not ask &amp;quot;Is it guaranteed that every group starts with a node that has itself no parent?&amp;quot;, but ask &amp;quot;Is there an API to copy categories just like the UI has?&amp;quot;. See also: &lt;a href=&quot;https://xyproblem.info/&quot;&gt;The XY Problem&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Be okay with making such mistakes. I am new in the company. It is almost inevitable that I will run in circles and it may take some time before my knowledge of the system matches my level of general problem solving skills. Because I could have solved the hard problem - which is why I tackled it - I just didn&#39;t need to.&lt;/li&gt;
&lt;li&gt;Accept your expertise level. As I said I am new here and at the same time I have programmed for a while so I generally know what I&#39;m doing. This is a great recipe for falling prey to the Dunning–Kruger effect: That is overestimating one&#39;s ability in a particular context. I may be an okay problem solver, but I do not know the new system.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There is a certain inevitability to feeling a bit of shame while learning from mistakes. It&#39;s part of the journey in a field as complex as programming. I&#39;m still learning to embrace these moments, understanding that they are not just hurdles but stepping stones towards greater expertise and confidence.&lt;/p&gt;
&lt;p&gt;As I move forward, I remind myself to maintain a balance: to stay humble yet curious, to recognize the boundaries of my current knowledge while also questioning &lt;a href=&quot;https://www.snopes.com/fact-check/grandmas-cooking-secret/&quot;&gt;established norms&lt;/a&gt;. This experience has taught me that becoming a better developer isn&#39;t just about accumulating knowledge, but also about the wisdom to question, to explore, and, most importantly, to learn from slightly embarrassing fumbles.&lt;/p&gt;
&lt;p&gt;So, with these lessons in my toolkit, I am moving on - a little humbler and wiser, a bit more prepared, and as eager as ever to challenge and be challenged. After all, it&#39;s through questioning and exploring that we often find the most innovative solutions and grow beyond our imagined limits.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Quick little story: I was working on a relatively big task to duplicate a bunch of data in a system I barely know. Now, the biggest problem here was that the data in question was hierarchical sql data. That makes it tricky because relational tables (rows and columns) are not well suited to make it easy to traverse such trees. You could relatively easily use a migration logger functionality and click through the UI on the backend to record the sql that you need to migrate this data. But this gets messy quick and can go easily wrong. The more data you need to duplicate the more important it is that you do the right thing for an increasingly long sequence of manual actions. Also there is cleanup necessary afterwards, since the migration logger is not optimizing its lightly abstracted sql statements well. On top of that, I could not find a good interface to program my migration against either. It seemed that my options were: use the UI and record the changes using the migration logger write what you need using raw sql yourself I decided to go with option 2. I found a great solution that did not require a nested set approach called a recursive common table expression. I felt like a genius. I also was sitting on my high horse, &amp;quot;How did no one ever come up with a good API for doing common things like: copying this entity over onto this branch? Well, I guess I have to do it myself…&amp;quot; Even though progress was made to create migration helper functionality, it was slow and I had lots of questions regarding the structure of the data I was supposed to duplicate. Yesterday my boss took 2 hours of his time to look at the problem with me. He pointed out that what I had been doing for the last three days was unnecessary. Of course, what could be done in the UI in the backend could also be accomplished programmatically. It wasn&#39;t even that hard. It had all the scaffolding for customization of the process I could have ever wanted. This will allow me to write a readable migration in a few hundred lines, with no later cleanup necessary. We solved a big chunk of my problem in no time. I was embarrassed. Not only did I underestimate my colleagues and the maintainers before me, I also underestimated the system and its capabilities. I felt especially bad, because I thought I had done the right thing, like asking many questions and communicating with the project management why there was such a delay. I thought I was dealing with a hard problem - and in a vacuum it actually was a hard problem - but instead I just didn&#39;t know where to look or what to ask. It&#39;s a new day and I think I take a bunch of lessons from this: Ask more directly: Do not ask &amp;quot;Is it guaranteed that every group starts with a node that has itself no parent?&amp;quot;, but ask &amp;quot;Is there an API to copy categories just like the UI has?&amp;quot;. See also: The XY Problem. Be okay with making such mistakes. I am new in the company. It is almost inevitable that I will run in circles and it may take some time before my knowledge of the system matches my level of general problem solving skills. Because I could have solved the hard problem - which is why I tackled it - I just didn&#39;t need to. Accept your expertise level. As I said I am new here and at the same time I have programmed for a while so I generally know what I&#39;m doing. This is a great recipe for falling prey to the Dunning–Kruger effect: That is overestimating one&#39;s ability in a particular context. I may be an okay problem solver, but I do not know the new system. There is a certain inevitability to feeling a bit of shame while learning from mistakes. It&#39;s part of the journey in a field as complex as programming. I&#39;m still learning to embrace these moments, understanding that they are not just hurdles but stepping stones towards greater expertise and confidence. As I move forward, I remind myself to maintain a balance: to stay humble yet curious, to recognize the boundaries of my current knowledge while also questioning established norms. This experience has taught me that becoming a better developer isn&#39;t just about accumulating knowledge, but also about the wisdom to question, to explore, and, most importantly, to learn from slightly embarrassing fumbles. So, with these lessons in my toolkit, I am moving on - a little humbler and wiser, a bit more prepared, and as eager as ever to challenge and be challenged. After all, it&#39;s through questioning and exploring that we often find the most innovative solutions and grow beyond our imagined limits.

        https://blog.martin-haehnel.de/2023/11/11/quick-little-story.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 730 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/10/224028.html" />
      <updated>2023-11-10T20:40:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/10/224028.html</id>
      <content type="html">&lt;p&gt;DailyDogo 730 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9eda68818c6349d6bc03790e9f3bd4cb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 730 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 729 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/10/dailydogo.html" />
      <updated>2023-11-10T09:08:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 729 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7e32547fc89a484fbaa91c7339568128.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 729 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Maddy Myers&#39; &quot;Bye!&quot;...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/09/maddy-myers-bye.html" />
      <updated>2023-11-09T08:52:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/09/maddy-myers-bye.html</id>
      <content type="html">&lt;p&gt;Maddy Myers&#39; &amp;quot;Bye!&amp;quot; at the end of every &lt;a href=&quot;https://maximumfun.org/podcasts/triple-click/&quot;&gt;Triple Click&lt;/a&gt; episode is simply the best in the biz.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Maddy Myers&#39; &amp;quot;Bye!&amp;quot; at the end of every Triple Click episode is simply the best in the biz.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 728 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/09/dailydogo.html" />
      <updated>2023-11-08T21:06:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 728 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/90fbed729fe944e69b69ad6b7f2f14d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 728 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 727 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/07/231557.html" />
      <updated>2023-11-07T20:15:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/07/231557.html</id>
      <content type="html">&lt;p&gt;DailyDogo 727 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/544e47af62e64fa98da7f4c503cff45f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 727 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It makes a lot of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/07/it-makes-a.html" />
      <updated>2023-11-07T15:36:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/07/it-makes-a.html</id>
      <content type="html">&lt;p&gt;It makes a lot of sense to commit always to the smallest possible &#39;meaningful&#39; amount of work on a project and count every little bit extra as exactly that: a bonus. If you have a bad day - or 14 …or 500 - you may still be able to do the thing without feeling bad that it wasn&#39;t more you did. Works equally will for habits. Feeling good about the small amount you did is better than feeling bad about the small amount you did.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It makes a lot of sense to commit always to the smallest possible &#39;meaningful&#39; amount of work on a project and count every little bit extra as exactly that: a bonus. If you have a bad day - or 14 …or 500 - you may still be able to do the thing without feeling bad that it wasn&#39;t more you did. Works equally will for habits. Feeling good about the small amount you did is better than feeling bad about the small amount you did.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 726 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/07/dailydogo.html" />
      <updated>2023-11-07T06:35:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 726 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/522c767dbbd44cc68a1a74e7604e40a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 726 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (NB: Where I live,...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/06/nb-where-i.html" />
      <updated>2023-11-06T09:54:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/06/nb-where-i.html</id>
      <content type="html">&lt;p&gt;(NB: Where I live, weeks start on Mondays.)&lt;/p&gt;
&lt;p&gt;I&#39;m a big fan of Mondays: It&#39;s a great excuse to start again, to try again. The old week is in the past and the new week is ahead. You can compare weeks, try to do better than the week before. It&#39;s like the first of January except you get 52 of these.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (NB: Where I live, weeks start on Mondays.) I&#39;m a big fan of Mondays: It&#39;s a great excuse to start again, to try again. The old week is in the past and the new week is ahead. You can compare weeks, try to do better than the week before. It&#39;s like the first of January except you get 52 of these.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 725 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/06/dailydogo.html" />
      <updated>2023-11-05T21:23:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 725 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/52aaf449c1de4d40ad7470a5a1cb6693.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 725 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 724 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/04/230623.html" />
      <updated>2023-11-04T20:06:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/04/230623.html</id>
      <content type="html">&lt;p&gt;DailyDogo 724 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0cba10dc503c4bd7ae9d77185e5e8bb5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 724 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 723 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/04/dailydogo.html" />
      <updated>2023-11-04T05:53:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 723 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0ed3ff86067a48ad92abd96e00e4a275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 723 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 722 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/02/dailydogo.html" />
      <updated>2023-11-02T20:22:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 722 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/777faf913f394fe9a2efff209aab8824.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 722 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 721 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/11/01/dailydogo.html" />
      <updated>2023-11-01T20:00:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/11/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 721 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/732d87ce57194166b9fe2c930865dfc6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 721 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 720 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/31/221442.html" />
      <updated>2023-10-31T19:14:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/31/221442.html</id>
      <content type="html">&lt;p&gt;DailyDogo 720 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/65658ed18abb47f586e78f49bf450162.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 720 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 719 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/31/dailydogo.html" />
      <updated>2023-10-31T05:46:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 719 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ee0e85fc464e43b18ea5fd4a8f1eca84.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 719 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 718 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/29/dailydogo.html" />
      <updated>2023-10-29T20:43:45Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 718 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cd68e988ef44b159c1e5b36e1b86cc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 718 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 717 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/28/dailydogo.html" />
      <updated>2023-10-28T19:08:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 717 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/398525b25b0f401399133d10a5c00c95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 717 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 716 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/27/223755.html" />
      <updated>2023-10-27T19:37:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/27/223755.html</id>
      <content type="html">&lt;p&gt;DailyDogo 716 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d8878ee1bfdc43da82df620ffe2a9783.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 716 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 715 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/27/dailydogo.html" />
      <updated>2023-10-27T05:30:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 715 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/43f7bc773cbf4805bc4f15aac1355a1f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 715 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 714 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/25/dailydogo.html" />
      <updated>2023-10-25T19:00:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 714 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/628b9c0bb76a495495cd44dbb68c935a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 714 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 713 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/24/dailydogo.html" />
      <updated>2023-10-24T19:05:25Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 713 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7d1a1399fc34e9b9012d1789bd25a4c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 713 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 712 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/23/dailydogo.html" />
      <updated>2023-10-23T19:43:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 712 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/22f522c24f7f4ae1bf461269c53ce52e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 712 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 711 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/22/230353.html" />
      <updated>2023-10-22T20:03:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/22/230353.html</id>
      <content type="html">&lt;p&gt;DailyDogo 711 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/53e940e0d32743d78325d94e3ed22298.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 711 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 710 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/22/dailydogo.html" />
      <updated>2023-10-21T21:09:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 710 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d4ec85d188a4d07aa81f83283f139e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 710 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 709 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/20/232156.html" />
      <updated>2023-10-20T20:21:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/20/232156.html</id>
      <content type="html">&lt;p&gt;DailyDogo 709 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f459687892cd44db8c2df76435338938.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 709 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 708 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/20/dailydogo.html" />
      <updated>2023-10-19T21:03:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 708 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1bd04858c344492f8d0ffc2ece13dad6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 708 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 707 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/18/dailydogo.html" />
      <updated>2023-10-18T18:12:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 707 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c50c0b95b51b4c43932d701a819e2de0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 707 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 706 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/17/dailydogo.html" />
      <updated>2023-10-17T19:42:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 706 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/716e0aceba3a4c3ea148207382917c51.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 706 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 705 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/16/223838.html" />
      <updated>2023-10-16T19:38:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/16/223838.html</id>
      <content type="html">&lt;p&gt;DailyDogo 705 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf1fa8f5c6be44d388f2ec0dd93e47f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 705 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 704 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/16/dailydogo.html" />
      <updated>2023-10-16T04:48:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 704 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8462c75f47b4df3986b57c1fa51e0e0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 704 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 703 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/15/dailydogo.html" />
      <updated>2023-10-14T23:39:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 703 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ec3d7ece55f74bc19065f9542e532312.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 703 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 702 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/13/dailydogo.html" />
      <updated>2023-10-13T19:00:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 702 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa39781857354bada5c01db4f2e6931d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 702 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 701 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/12/dailydogo.html" />
      <updated>2023-10-12T19:11:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 701 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dd66439f2135414ea390cf42e4312c53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 701 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 700 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/11/dailydogo.html" />
      <updated>2023-10-11T19:41:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 700 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/690d109f2121446bbd7a744b9ba9cde1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 700 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 699 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/10/dailydogo.html" />
      <updated>2023-10-10T19:21:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 699 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/39603512fe5a4d0fa5f5b466bb7c641c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 699 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 698 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/09/dailydogo.html" />
      <updated>2023-10-09T19:26:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 698 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6496a6244c1f4ce29ceb4e1018416be4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 698 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 697 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/08/dailydogo.html" />
      <updated>2023-10-08T20:20:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 697 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a789e3f8afb5405da3f0ad0f1010959b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 697 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 696 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/07/dailydogo.html" />
      <updated>2023-10-07T19:36:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 696 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/372bd7fb09ba4f9485ab7421dbd8fff1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 696 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 695 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/06/dailydogo.html" />
      <updated>2023-10-06T19:19:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 695 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/507468d93fb74d2d881388be5003affb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 695 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 694 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/05/dailydogo.html" />
      <updated>2023-10-05T19:19:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 694 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7686395b646e424d977e07558dfc1e27.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 694 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 693 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/04/dailydogo.html" />
      <updated>2023-10-04T19:46:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 693 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c5b97efce764ab7a196bcf24b67271a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 693 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 692 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/03/dailydogo.html" />
      <updated>2023-10-03T19:14:08Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 692 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2adda8e488564ae0be69f5003f415c47.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 692 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 691 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/02/dailydogo.html" />
      <updated>2023-10-02T16:39:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 691 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d72de993c0214067add853f231d4c163.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 691 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 690 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/10/01/dailydogo.html" />
      <updated>2023-10-01T20:09:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/10/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 690 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdacd82a2ff344949400b8b08e91c724.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 690 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 689 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/30/dailydogo.html" />
      <updated>2023-09-30T19:21:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 689 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/611349e4a1ca490c8ab3c8b39fde0fef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 689 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 688 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/29/dailydogo.html" />
      <updated>2023-09-29T19:09:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 688 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/db830b0b506d4a1a927e62d09d731194.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 688 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 687 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/28/221207.html" />
      <updated>2023-09-28T19:12:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/28/221207.html</id>
      <content type="html">&lt;p&gt;DailyDogo 687 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/65a968c3747a4e8a948671c01997273c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 687 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 686 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/28/dailydogo.html" />
      <updated>2023-09-28T10:30:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 686 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a253ac9a35624bb896a79bebbc0b2dca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 686 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 685 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/26/dailydogo.html" />
      <updated>2023-09-26T19:21:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 685 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3e6fe2ff2f34411bdcd5faed2295d2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 685 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 684 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/25/dailydogo.html" />
      <updated>2023-09-25T19:22:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 684 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1776&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1776.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1777&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1777.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 684 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 683 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/24/225109.html" />
      <updated>2023-09-24T19:51:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/24/225109.html</id>
      <content type="html">&lt;p&gt;DailyDogo 683 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bb80a4b6d6b47c390b24bcd5f9d09d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 683 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 682 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/24/dailydogo.html" />
      <updated>2023-09-24T15:33:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 682 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4997602b5a0c45099c6f753c0cfd3649.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 682 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 681 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/23/dailydogo.html" />
      <updated>2023-09-23T07:02:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 681 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/033a5b4ae28a4c54aa3f6921c01906cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 681 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 680 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/22/dailydogo.html" />
      <updated>2023-09-22T08:13:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 680 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e10101a1a1ad49dd93ca62f60af3c1d6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 680 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 679 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/20/dailydogo.html" />
      <updated>2023-09-20T19:30:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 679 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/331129ae0c144a41b0809d0f6d28a09e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 679 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 678 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/19/dailydogo.html" />
      <updated>2023-09-19T19:35:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 678 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/06f955576a824c959349b826f98c8096.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 678 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 677 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/18/dailydogo.html" />
      <updated>2023-09-18T20:36:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 677 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/68fe32981f154f8db08d69a401e7add6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 677 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 676 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/17/dailydogo.html" />
      <updated>2023-09-17T19:53:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 676 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa864e90b74b43269a55dd38d04e431f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 676 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 675 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/16/dailydogo.html" />
      <updated>2023-09-16T20:06:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 675 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/27d1f6eca85d4eb8b44ece7358c119d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 675 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 674 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/15/dailydogo.html" />
      <updated>2023-09-15T19:26:45Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 674 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/01734274c5c94cf1a6f08add3e6939f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 674 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 673 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/14/222046.html" />
      <updated>2023-09-14T19:20:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/14/222046.html</id>
      <content type="html">&lt;p&gt;DailyDogo 673 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b62a202783bc4538814bc8d7446fc8ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 673 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 672 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/14/dailydogo.html" />
      <updated>2023-09-13T21:06:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 672 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/538a335902ae4874ba187ec18981738b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 672 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 671 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/12/dailydogo.html" />
      <updated>2023-09-12T19:48:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 671 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white dog looking into the camera with their tongue sticking out. They are sitting on a light coloured wooden floor and there is a plant and a dog bed behind them.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e065d62d3cd344918b8cfb4509754c97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 671 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 670 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/11/dailydogo.html" />
      <updated>2023-09-11T18:56:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 670 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fb4d6605ad0e4c328aa1513e9c2401ff.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 670 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          You were the chosen...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/11/you-were-the.html" />
      <updated>2023-09-11T07:13:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/11/you-were-the.html</id>
      <content type="html">&lt;p&gt;You were the chosen one, etc. #enshittification&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/image.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        You were the chosen one, etc. #enshittification</echofeed:content>
    </entry>
    <entry>
      <title>
        
          With Ivory having...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/10/with-ivory-having.html" />
      <updated>2023-09-10T20:33:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/10/with-ivory-having.html</id>
      <content type="html">&lt;p&gt;With Ivory having timeline sync and it remembering my reading position I&#39;m much more likely to read Mastodon than micro.blog atm. So much so that I&#39;m contemplating posting over there. I guess crosspostibg in the other direction would truly be nice. Right now this is still posted from mb.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        With Ivory having timeline sync and it remembering my reading position I&#39;m much more likely to read Mastodon than micro.blog atm. So much so that I&#39;m contemplating posting over there. I guess crosspostibg in the other direction would truly be nice. Right now this is still posted from mb.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 669 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/10/dailydogo.html" />
      <updated>2023-09-10T19:38:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 669 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aca16c778dc843caa15d261ff4f74b54.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 669 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 668 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/09/dailydogo.html" />
      <updated>2023-09-09T19:25:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 668 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6009ef911a44235bb4549263690e52b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 668 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 667 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/08/dailydogo.html" />
      <updated>2023-09-08T20:01:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 667 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2315caf7a0c44bb79d42e7ce7059fc52.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 667 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 666 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/07/dailydogo.html" />
      <updated>2023-09-07T19:37:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 666 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2cc8c35cd64646b0a87c67bdfc762ab2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 666 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 665 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/06/dailydogo.html" />
      <updated>2023-09-06T19:46:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 665 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/08295b24e33e43cf8f261983566a9cf4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 665 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Maybe Gruber is a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/06/maybe-gruber-is.html" />
      <updated>2023-09-06T13:32:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/06/maybe-gruber-is.html</id>
      <content type="html">&lt;p&gt;Maybe Gruber is a good writer. As a foreigner I can&#39;t really judge the quality of his tech blogging. But he often is not great in forming arguments.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Maybe Gruber is a good writer. As a foreigner I can&#39;t really judge the quality of his tech blogging. But he often is not great in forming arguments.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 664 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/05/dailydogo.html" />
      <updated>2023-09-05T19:38:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 664 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/301448d2a83a44a6877a1137f7c2cb5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 664 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 663 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/04/dailydogo.html" />
      <updated>2023-09-04T20:01:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 663 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;004BE313 7397 428B A084 97449D51FA71&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/004be313-7397-428b-a084-97449d51fa71.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;56BE9D24 CEFD 40ED B2D7 1567191906DA&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b2b200864d.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;EA52EB2D 10D2 4D6D AB68 6D937D2746A1&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f916bbef27.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 4484&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-4484.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 663 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 662 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/03/dailydogo.html" />
      <updated>2023-09-03T20:06:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 662 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c10397ce0c6645b88e6ce434dccd50ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 662 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 661 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/02/dailydogo.html" />
      <updated>2023-09-02T19:01:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 661 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3c50d8cb265482aab8c9918c6c36fe8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 661 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 660 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/09/01/dailydogo.html" />
      <updated>2023-09-01T20:25:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/09/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 660 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fd25d1afa41e4cacadb23dc9477523ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 660 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 659 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/31/224022.html" />
      <updated>2023-08-31T19:40:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/31/224022.html</id>
      <content type="html">&lt;p&gt;DailyDogo 659 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fa4ad6361f1d47c993a9af17e07d9c7c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 659 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 658 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/31/dailydogo.html" />
      <updated>2023-08-31T06:10:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 658 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0687b4bc393e46108fe9d89f5019174c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 658 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 657 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/29/203445.html" />
      <updated>2023-08-29T17:34:45Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/29/203445.html</id>
      <content type="html">&lt;p&gt;DailyDogo 657 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b501f64dda16405c8d1dcf14162ae26f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 657 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 656 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/29/dailydogo.html" />
      <updated>2023-08-28T23:03:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 656 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/be92e2d4c6644b03a800a8efac220a7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 656 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 655 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/27/224104.html" />
      <updated>2023-08-27T19:41:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/27/224104.html</id>
      <content type="html">&lt;p&gt;DailyDogo 655 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d8c20e4f4a641ea98ed3183747a0caf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 655 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 654 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/27/dailydogo.html" />
      <updated>2023-08-27T07:45:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 654 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bc3f7733dc14899a2e0c481328c6518.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 654 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 653 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/25/dailydogo.html" />
      <updated>2023-08-25T19:57:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 653 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d0b15fa782954a2fab47d7fb1eafe04b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 653 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 652 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/24/dailydogo.html" />
      <updated>2023-08-24T19:15:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 652 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7cbed9c9f8104f339b113735b8ff48ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 652 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          &gt;if we were to make...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/24/if-we-were.html" />
      <updated>2023-08-24T06:58:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/24/if-we-were.html</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;if we were to make a few &lt;a href=&quot;https://micro.blog/obsidian&quot;&gt;@obsidian&lt;/a&gt; merch items which combo would you like best?
— &lt;a href=&quot;https://mastodon.social/@kepano/110940615802579244&quot;&gt;mastodon.social/@kepano/1...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I would like best, if you would continue working on Obsidian instead.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/02/103909.html&quot;&gt;Previously.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        if we were to make a few @obsidian merch items which combo would you like best? — mastodon.social/@kepano/1... I would like best, if you would continue working on Obsidian instead. Previously.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 651 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/23/dailydogo.html" />
      <updated>2023-08-23T19:15:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 651 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2530e97344124d4da4832660519642b1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 651 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Kaitlin Salzke...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/23/kaitlin-salzke-makes.html" />
      <updated>2023-08-23T06:22:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/23/kaitlin-salzke-makes.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://kaitlinsalzke.com/omnifocus-plugins/&quot;&gt;Kaitlin Salzke makes excellent OmniFocus plug-ins.&lt;/a&gt; I&#39;ve written before &lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/16/there-is-a.html&quot;&gt;about the &amp;quot;work on&amp;quot; plug-in&lt;/a&gt;, which solves the problem of having to identify the next step for projects where the next step is simply and always &amp;quot;keep working on it&amp;quot;. I&#39;m using this especially for projects that are tracked in the issue tracker at work.&lt;/p&gt;
&lt;p&gt;Anyways, another amazing plug-in is &lt;a href=&quot;https://kaitlinsalzke.com/omnifocus-plugins/scheduling/&quot;&gt;the &amp;quot;scheduling&amp;quot; plug-in&lt;/a&gt;, which adds an important date to the mix of dates I can set on a task: scheduled dates. A scheduled date is a date that basically says &amp;quot;I&#39;m planning to work on this on this date&amp;quot;. Why is this powerful? Because until now I had to abuse either defer dates (which actually mean - or I take them to mean - &amp;quot;I can work on this starting from this date&amp;quot;) or due dates (this has to be done by this date or I&#39;m in trouble).&lt;/p&gt;
&lt;p&gt;Let&#39;s say it&#39;s Wednesday today (which it is at the point of writing) and I have a task that I think I&#39;ll work on on Friday. With scheduled dates I don&#39;t need to defer tasks until Friday or set a due date for Friday - both would not reflect reality. Instead I can now correctly express that I &lt;em&gt;can&lt;/em&gt; work before Friday on this task, but I plan to do so on Friday.&lt;/p&gt;
&lt;p&gt;The plug-in makes use of tags to implement the feature and it is to thoughtfully executed, that I highly recommend giving it a try.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/16/there-is-a.html&quot;&gt;Previously.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Kaitlin Salzke makes excellent OmniFocus plug-ins. I&#39;ve written before about the &amp;quot;work on&amp;quot; plug-in, which solves the problem of having to identify the next step for projects where the next step is simply and always &amp;quot;keep working on it&amp;quot;. I&#39;m using this especially for projects that are tracked in the issue tracker at work. Anyways, another amazing plug-in is the &amp;quot;scheduling&amp;quot; plug-in, which adds an important date to the mix of dates I can set on a task: scheduled dates. A scheduled date is a date that basically says &amp;quot;I&#39;m planning to work on this on this date&amp;quot;. Why is this powerful? Because until now I had to abuse either defer dates (which actually mean - or I take them to mean - &amp;quot;I can work on this starting from this date&amp;quot;) or due dates (this has to be done by this date or I&#39;m in trouble). Let&#39;s say it&#39;s Wednesday today (which it is at the point of writing) and I have a task that I think I&#39;ll work on on Friday. With scheduled dates I don&#39;t need to defer tasks until Friday or set a due date for Friday - both would not reflect reality. Instead I can now correctly express that I can work before Friday on this task, but I plan to do so on Friday. The plug-in makes use of tags to implement the feature and it is to thoughtfully executed, that I highly recommend giving it a try. Previously.

        https://blog.martin-haehnel.de/2023/08/23/kaitlin-salzke-makes.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 650 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/22/dailydogo.html" />
      <updated>2023-08-22T20:45:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 650 🐶&lt;/p&gt;
&lt;p&gt;&lt;video src=&quot;https://blog.martin-haehnel.de/uploads/2023/img-1553.mov&quot; muted=&quot;&quot; autoplay=&quot;&quot; loop=&quot;&quot;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1553&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1553.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1554&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1554.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 650 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 649 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/21/dailydogo.html" />
      <updated>2023-08-21T18:57:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 649 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/47fe28946d66496696517c24030a0202.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 649 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 648 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/20/dailydogo.html" />
      <updated>2023-08-20T20:31:40Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 648 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0a2a0cb5ade14792ac2c007c4a47ba39.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 648 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 647 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/19/dailydogo.html" />
      <updated>2023-08-19T19:45:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 647 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a4a4057304544eb1a28ad5610a09c197.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 647 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 646 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/18/dailydogo.html" />
      <updated>2023-08-18T19:27:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 646 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3182531f96a84868869e824a85e822f4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 646 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 645 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/17/dailydogo.html" />
      <updated>2023-08-17T19:33:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 645 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5723c21964054f1d873a955d98f94c7b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 645 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 644 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/16/dailydogo.html" />
      <updated>2023-08-16T19:01:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 644 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;lil selfie with doggo&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/24fae59db9cd40e086b71643f3e0ef9a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 644 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 643 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/15/dailydogo.html" />
      <updated>2023-08-15T18:39:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 643 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d6113bdda0ad452fbad2dffb6d98cf0c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 643 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 642 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/14/dailydogo.html" />
      <updated>2023-08-14T17:31:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 642 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff483cee27bb483cb9362b32a2e9cecd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 642 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 641 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/13/dailydogo.html" />
      <updated>2023-08-13T17:23:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 641 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/425da519c56740eb8716963a6f670905.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 641 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 640 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/12/dailydogo.html" />
      <updated>2023-08-12T19:42:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 640 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84472c70f3af4448aaec594fc5c721bd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 640 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 639 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/11/dailydogo.html" />
      <updated>2023-08-11T20:15:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 639 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c2bab89c84c4948bdb9862c748a3f5f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 639 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 638 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/10/dailydogo.html" />
      <updated>2023-08-10T19:16:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 638 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dfceac4894b24e3ebc707f660f77880d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 638 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 637 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/09/dailydogo.html" />
      <updated>2023-08-09T17:15:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 637 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/54938b48e2ad4dfb9bc2f440a4249822.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 637 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 636 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/08/dailydogo.html" />
      <updated>2023-08-08T19:26:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 636 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a38c4e07d7d46588543db28416e0795.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 636 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 635 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/07/dailydogo.html" />
      <updated>2023-08-07T18:17:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 635 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/479d75c9a1554cf6b1bb6b040cfc112b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 635 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 634 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/06/dailydogo.html" />
      <updated>2023-08-06T18:42:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 634 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8193e1733153417e8a842b0dc6073480.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 634 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 633 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/05/dailydogo.html" />
      <updated>2023-08-05T16:19:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 633 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abd7369c55f1465c8728653ca4ff3fad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 633 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Environmental software quality



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/05/environmental-software-quality.html" />
      <updated>2023-08-05T10:05:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/05/environmental-software-quality.html</id>
      <content type="html">&lt;p&gt;&lt;em&gt;TL;DR: In light of the growing importance of digital services, we ought to consider modern software quality in relation to its environmental impact as well. This is more easily possible thanks to using automated software quality tools and continuous integration.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Being a programmer means being privileged: You&#39;re generally sought after, payed well and enjoy freedoms and perks that other workers could only dream of. I think this still is true even though there have been many tech lay-offs recently. It&#39;s not like programmers became obsolete. On average software developers have it pretty good.&lt;/p&gt;
&lt;p&gt;In any case, working in software development brings with it also a big responsibility: To at least ponder the consequences of our actions as an industry. Up to and including what that means for the industry in my country (and Europe as a whole in my case), my company, my team and myself.&lt;/p&gt;
&lt;p&gt;There are lots of things to consider like privacy issues, accessibility issues and - more and more, although it&#39;s not a new thing - environmental issues.&lt;/p&gt;
&lt;p&gt;Because of how the world works, even actually pondering those issues at work almost never happens. It&#39;s not really part of the discussion - lip service aside - when considering changes to a software system.&lt;/p&gt;
&lt;p&gt;I acknowledge the importance of all the ethical issues named und unnamed above, but want to concentrate on environmental issues here: The tech industry as a whole is constantly incentivized to offer and use more resources: It has become standard to expect new computers to be faster and so newer software tends to be more resource hungry than older software. What does that mean, exactly? Well, new hardware needs resources in production to make all the chips, cards, and so on, that&#39;s obvious to anyone. But resources are also needed  when using our hardware: A modern laptop generally doesn&#39;t require that much power to be used by us, but what about the internet? The data centers that host most of the services we use today and that make up a big part of our modern understanding of what using a computing device should feel like, are insanely resource hungry. Take this example of data centers using fresh water to cool its facilities:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In The Dalles, Oregon, Google was found to be using a quarter of the city’s water supply to cool its facilities. Tech companies have been facing pushback elsewhere in the United States, but also across the world in places like Uruguay, Chile, the Netherlands, Ireland, and New Zealand. Now opposition is growing in Spain too, where droughts are wiping out crops and people are wondering why they’d give their limited water resources to Meta for a data center.
— &lt;a href=&quot;https://www.disconnect.blog/p/the-chatgpt-revolution-is-another&quot;&gt;The ChatGPT revolution is another tech fantasy&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The French think tank &amp;quot;the shift project&amp;quot; &lt;a href=&quot;https://theshiftproject.org/en/article/unsustainable-use-online-video/&quot;&gt;estimated&lt;/a&gt;  that about 4% of green house gas emissions are the result of the use of digital services and that this figure grows by 9% every year.&lt;/p&gt;
&lt;h3 id=&quot;automation-and-software-quality&quot;&gt;Automation and software quality&lt;/h3&gt;
&lt;p&gt;A modern software development workflow consists of many pieces, incorporates many different perspectives and hast to take a lot of concerns into account. After all, modern businesses model their processes in software, report, plan and reflect in software and are maybe even selling software products through software market places. Business processes tend to be very complex, simply by virtue of having to deal with historical ballast, future visions, differing politics within the company and a shifting environment in which the software has to function, not to speak of the process itself, which touches many different stake holders that all need different things from a company to do their work.&lt;/p&gt;
&lt;p&gt;Because of this, the software development cycle of gathering requirements, implementation, testing and release has started - more than 10 years ago - to accumulate lots of automation tools that are being referred to as continuous integration (ci). For example: When you develop software you often want to make sure that your new feature works as expected before you release a new version of your software. For this, people have developed testing tools. So people would write not only the feature but also a test (or tests) to make sure that the feature does what it should: This basically means you would define inputs and expected outputs and make sure that the new feature returns those expected values, when feeding the defined inputs. When a developer runs their test, they can see that the new feature works. This is great, but it&#39;s even greater when used down the road: Because a newer feature could accidentally change the behavior of a system in an unexpected way. With tests you can make sure that deployed code is more resilient against such accidental changes.&lt;/p&gt;
&lt;p&gt;An important part of modern development is the code review. So a developer would implement a feature, write tests and send their changes as a merge request (or pull request) to a colleague for review purposes. That colleague would check for any missed requirements, errors in the implementation, code smells and so on. There is a little back and forth between reviewer and programmer and if all is well the code is approved and can be deployed to a test system for a quality assurance colleague to manually test the change, before it then finally finds its way into the &amp;quot;live&amp;quot; software version used by a normal user.&lt;/p&gt;
&lt;p&gt;The code review process is especially important in terms of code quality, that is, in terms of aspects of the code that are rarely user facing but nonetheless are a very important part of a resilient application - scalable, easy to test, easy to change, etc. In other words: code review is supposed to help and (often times) ensure a high standard of quality in the codebase.&lt;/p&gt;
&lt;p&gt;Back to ci: Continuous integration can automatically find and often times fix a great many problems with new - and old, outdated - code. First of all, it can run all the software tests to ensure backwards compatibility. It can also run a linter, which ensures a consistent style (indentation, order of parts of code, naming scheme, etc.). This improves readability and ensures that a person familiar with one part of the system doesn&#39;t need to parse everything about this unknown part of the system: the files look the same and things are generally named as you would expect them to be, and so on.&lt;/p&gt;
&lt;p&gt;You can go further. You can let a static analysis tool run, to catch things like giving the wrong inputs to a function (e.g. input is a floating number, but this function expects an integer; in a dynamically typed language like PHP you might catch this error only when the code is actually run - but you want to catch that mistake and fix it before it is encountered in the wild). There are many, many other things where static analysis of a codebase in light of new changes can reveal problems that would otherwise go unnoticed until it&#39;s too late.&lt;/p&gt;
&lt;p&gt;There&#39;s automated testing, linting, static analysis and more tools like &amp;quot;mess detectors&amp;quot; that try to detect valid code but that constitutes generally considered bad programming practices. All of these tools would run before a code reviewer even gets to see the code. Issues with agreed upon standards will be brought up and fixed - in some cases even automatically - before another human even has to see the code. This in the end saves time, improves focus - because humans are not good in spotting standard violations and even prevents some lengthy discussions in some cases - because the machine is dispassionate and just enforces a standard that was agreed upon in the company.&lt;/p&gt;
&lt;p&gt;But you can go further. A relatively new idea is to also take software architecture into account when talking about ci. Software architecture is a whole can of worms in itself, but one important concern, as an example, is modularity: You want your code neatly organized so that the whole system stays open to replacement, improvement, extension, change, and so on. You could make sure, for example, that different parts of the system do not talk directly with each other, by defining application layers that separate different parts of the system from another to ensure a sensible organizational structure of the whole. Well, you can test for that in your ci pipeline - the pipeline is what runs all your defined code quality tools, linters and so on - as well, by defining an &amp;quot;architectural fitness function&amp;quot;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the 2017 book Building Evolutionary Architectures (O’Reilly), the authors (Neal Ford, Rebecca Parsons, and Patrick Kua) defined the concept of an architectural fitness function: any mechanism that performs an objective integrity assessment of some architecture characteristic or combination of architecture characteristics.
— &lt;a href=&quot;https://www.oreilly.com/library/view/software-architecture-the/9781492086888/&quot;&gt;Software Architecture: The Hard Parts, &amp;quot;Using Fitness Functions&amp;quot;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;With a function defined you can also write a test in a tool like &lt;a href=&quot;https://github.com/carlosas/phpat&quot;&gt;phpat&lt;/a&gt;. Here&#39;s an example from the readme of this project:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;span class=&quot;token php language-php&quot;&gt;&lt;span class=&quot;token delimiter important&quot;&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;PHPat&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Selector&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Selector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;PHPat&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Test&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Builder&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Rule&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;PHPat&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Test&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;PHPat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;use&lt;/span&gt; &lt;span class=&quot;token package&quot;&gt;App&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;Domain&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;SuperForbiddenClass&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name-definition class-name&quot;&gt;MyFirstTest&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function-definition function&quot;&gt;test_domain_does_not_depend_on_other_layers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token class-name return-type&quot;&gt;Rule&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token class-name static-context&quot;&gt;PHPat&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rule&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name static-context&quot;&gt;Selector&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;App&#92;Domain&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;shouldNotDependOn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;token operator&quot;&gt;-&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
                &lt;span class=&quot;token class-name static-context&quot;&gt;Selector&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;App&#92;Application&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token class-name static-context&quot;&gt;Selector&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;App&#92;Infrastructure&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token class-name static-context&quot;&gt;Selector&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classname&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token class-name static-context&quot;&gt;SuperForbiddenClass&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;token class-name static-context&quot;&gt;Selector&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classname&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;/^SomeVendor&#92;&#92;&#92;.*&#92;&#92;&#92;ForbiddenSubfolder&#92;&#92;&#92;.*/&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token constant boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And just as with your tests that are supposed to test that the code does what it does, you can test that it does so in an integrity conserving way with an architectural testing tool like this.&lt;/p&gt;
&lt;h3 id=&quot;automating-measuring-environmental-impact&quot;&gt;Automating measuring environmental impact&lt;/h3&gt;
&lt;p&gt;But you can do more: We started this discussion with pondering ethical issues and the impact a software developer&#39;s work has. You can now for example measure carbon footprint and energy consumption in a similar fashion in your ci pipeline as all the other things we have mentioned above. An example is &lt;a href=&quot;https://github.com/marmelab/greenframe-cli&quot;&gt;greenframe&lt;/a&gt; that does this for web apps.&lt;/p&gt;
&lt;p&gt;As with all concerns: A measurement is only as good as the idea of what you&#39;re trying to measure. Just as with coding standards, testing and architecture, automatic validation and measurement is only good if you measure for a reason - and figuring out that reason will continue being a hard problem. What automation can do, though, is performing consistent measurements of your codebase, which you can then use to gauge the environmental software quality of your project.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This wraps up this somewhat lengthy blog post. I wish that companies running especially resource hungry applications - like the AIs of today - would incorporate environmental concerns in their assessment of software quality. Because how good is a software really, if it is not built environmentally conscious?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Environmental software quality

        https://blog.martin-haehnel.de/2023/08/05/environmental-software-quality.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 632 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/04/dailydogo.html" />
      <updated>2023-08-04T19:48:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 632 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a2344e5dc61844ff8e8dda20ac5d4c88.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 632 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Full points! (I wish...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/04/full-points-i.html" />
      <updated>2023-08-04T07:08:08Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/04/full-points-i.html</id>
      <content type="html">&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A screenshot of the first few lines of varnish-cache.org. After the heading there is a link stating &amp;amp;quot;I’m new here, please explain this Varnish thing&amp;amp;quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-08-04-varnish-homepage.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;Full points! (I wish more projects would have a clearly visible link to an explainer what the thing I&#39;m looking at actually is.)&lt;/p&gt;
&lt;p&gt;&amp;lt;&lt;a href=&quot;https://varnish-cache.org/&quot;&gt;varnish-cache.org&lt;/a&gt;&amp;gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Full points! (I wish more projects would have a clearly visible link to an explainer what the thing I&#39;m looking at actually is.) &amp;lt;varnish-cache.org&amp;gt;</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 631 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/03/dailydogo.html" />
      <updated>2023-08-03T19:32:45Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 631 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fe0d522c5f54c46afc6473369dc87f6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 631 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 630 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/02/dailydogo.html" />
      <updated>2023-08-02T20:02:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 630 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/109e1282892941b692eb357b4f70ca79.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 630 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 629 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/08/01/dailydogo.html" />
      <updated>2023-08-01T18:26:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/08/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 629 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e6760d76c5f04092b2548c0a7b845fbc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 629 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 628 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/31/dailydogo.html" />
      <updated>2023-07-31T20:22:01Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 628 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a0572e8232a84b999eaaef0862a50adf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 628 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 627 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/30/190347.html" />
      <updated>2023-07-30T16:03:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/30/190347.html</id>
      <content type="html">&lt;p&gt;DailyDogo 627 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6eb097e514f54cf2a6f0b76e60813cfa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 627 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 626 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/30/dailydogo.html" />
      <updated>2023-07-30T07:27:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 626 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4d8be1a5b0d749d0b502d09b5a6cd7f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 626 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 625 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/29/dailydogo.html" />
      <updated>2023-07-29T11:14:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 625 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/29a22fef1ed54fdfb1b784793871b156.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 625 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Half-Watching some...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/28/halfwatching-some-baseball.html" />
      <updated>2023-07-28T20:37:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/28/halfwatching-some-baseball.html</id>
      <content type="html">&lt;p&gt;Half-Watching some Baseball and doing some light reflective writing. That&#39;s enough for a Friday night.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Half-Watching some Baseball and doing some light reflective writing. That&#39;s enough for a Friday night.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Dog and Partner are...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/28/dog-and-partner.html" />
      <updated>2023-07-28T16:56:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/28/dog-and-partner.html</id>
      <content type="html">&lt;p&gt;Dog and Partner are away until Monday. I&#39;ll have to see if daily dogo happens today or not…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Dog and Partner are away until Monday. I&#39;ll have to see if daily dogo happens today or not…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The combination...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/28/the-combination-chatgpt.html" />
      <updated>2023-07-28T14:55:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/28/the-combination-chatgpt.html</id>
      <content type="html">&lt;p&gt;The combination ChatGPT and Keyboard Maestro is really something.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The combination ChatGPT and Keyboard Maestro is really something.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 624 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/27/dailydogo.html" />
      <updated>2023-07-27T17:53:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 624 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8b84f7220ca49ba94535b2afc6b9b66.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 624 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Who would have...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/27/who-would-have.html" />
      <updated>2023-07-27T11:17:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/27/who-would-have.html</id>
      <content type="html">&lt;p&gt;Who would have thought that I play the role of the code quality lobbyist in my new job?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Who would have thought that I play the role of the code quality lobbyist in my new job?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 623 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/26/dailydogo.html" />
      <updated>2023-07-26T20:10:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 623 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/429411ffbb044a368a257b6fac78f8fe.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 623 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          In other news: I...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/26/in-other-news.html" />
      <updated>2023-07-26T11:10:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/26/in-other-news.html</id>
      <content type="html">&lt;p&gt;In other news: I solved my first real hard and urgent ticket at my new job and am proud as f about it!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        In other news: I solved my first real hard and urgent ticket at my new job and am proud as f about it!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Car front window got...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/26/car-front-window.html" />
      <updated>2023-07-26T11:09:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/26/car-front-window.html</id>
      <content type="html">&lt;p&gt;Car front window got a crack while my partner was calling me to tell me that there was a dangerous situation before, unrelated to this accident. She didn&#39;t get hurt, but we both got scared, of course.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Car front window got a crack while my partner was calling me to tell me that there was a dangerous situation before, unrelated to this accident. She didn&#39;t get hurt, but we both got scared, of course.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 622 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/25/dailydogo.html" />
      <updated>2023-07-25T17:25:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 622 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/520b38b8cd734f298e78cbd4ddfb21a5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 622 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 621 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/24/dailydogo.html" />
      <updated>2023-07-24T17:37:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 621 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/809e90c6c2e54c609572d4e42e988f4e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 621 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 620 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/23/dailydogo.html" />
      <updated>2023-07-23T17:24:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 620 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f772e1d02a4bbeb969e18dfabadb3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 620 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 619 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/22/dailydogo.html" />
      <updated>2023-07-22T20:32:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 619 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/38b77624bf014dbb952f09842698b335.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 619 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 618 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/21/dailydogo.html" />
      <updated>2023-07-21T19:58:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 618 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2851b090e1d84458b6d4c33b7a357c3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 618 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 617 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/20/dailydogo.html" />
      <updated>2023-07-20T17:33:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 617 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2a75a09c73b44462ab76f8936b30ebd3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 617 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Who would have...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/20/who-would-have.html" />
      <updated>2023-07-20T10:28:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/20/who-would-have.html</id>
      <content type="html">&lt;p&gt;Who would have thought that &lt;a href=&quot;https://github.com/squizlabs/PHP_CodeSniffer&quot;&gt;PHP_Codesniffer&lt;/a&gt; is actually superior to &lt;a href=&quot;https://github.com/PHP-CS-Fixer/PHP-CS-Fixer&quot;&gt;php-cs-fixer&lt;/a&gt;… (Not me. But it is.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Who would have thought that PHP_Codesniffer is actually superior to php-cs-fixer… (Not me. But it is.)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 616 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/19/dailydogo.html" />
      <updated>2023-07-19T16:19:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 616 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4931b6916f33457db83eeace6c7f9849.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 616 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 615 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/18/dailydogo.html" />
      <updated>2023-07-18T19:07:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 615 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1368&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1368.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1369&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1369.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 1372&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-1372.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 615 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 614 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/17/dailydogo.html" />
      <updated>2023-07-17T16:10:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 614 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e4f89ee23214bd0a913ff2c783e0b3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 614 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          You don&#39;t need to be...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/17/you-dont-need.html" />
      <updated>2023-07-17T09:23:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/17/you-dont-need.html</id>
      <content type="html">&lt;p&gt;You don&#39;t need to be a &amp;quot;test first&amp;quot;/test-driven developer to like tests in your application.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        You don&#39;t need to be a &amp;quot;test first&amp;quot;/test-driven developer to like tests in your application.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 613 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/16/dailydogo.html" />
      <updated>2023-07-16T16:23:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 613 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2ec73b26ccac41b9b59779cc9d23a0bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 613 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          There is a great...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/16/there-is-a.html" />
      <updated>2023-07-16T10:43:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/16/there-is-a.html</id>
      <content type="html">&lt;p&gt;There is a great OmniFocus plug-in by Kaitlin Salzke called &lt;a href=&quot;https://kaitlinsalzke.com/omnifocus-plugins/work-on/&quot;&gt;Work On&lt;/a&gt; which &lt;a href=&quot;https://kaitlinsalzke.com/workflow/waxing-philosophical-about-task-management-in-omnifocus/&quot;&gt;apparently&lt;/a&gt; is an idea - the work on task that is - that Kourosh Dini came up with.&lt;/p&gt;
&lt;p&gt;People who know GTD know that I&#39;m at least to define the next step that would bring my project closer to completion. But sometimes even that gets in the way and so I end up not setting up the project in OmniFocus at all. The antidote is a repeating &amp;quot;Work on&amp;quot; task that I can check off when I did an appropriate amount of work. Instead of defining the next step I&#39;m just working on it and especially in projects that are self evident, creative or not in need of lots of planning this is a great idea.&lt;/p&gt;
&lt;p&gt;Kaitlin&#39;s plug-in makes this thing now even better, because I can check the task off for the whole day and it won&#39;t come back until tomorrow.&lt;/p&gt;
&lt;p&gt;Great idea, great plug-in. Give it a try.&lt;/p&gt;
&lt;p&gt;P. S.: It&#39;s maybe slightly too early to write a post like this, but I just wanted to share my enthusiasm. So take it with a grain of salt - and ask me in 3 months if I&#39;m still using this.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/16/i-dont-know.html&quot;&gt;Previously.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/08/23/kaitlin-salzke-makes.html&quot;&gt;Forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        There is a great OmniFocus plug-in by Kaitlin Salzke called Work On which apparently is an idea - the work on task that is - that Kourosh Dini came up with. People who know GTD know that I&#39;m at least to define the next step that would bring my project closer to completion. But sometimes even that gets in the way and so I end up not setting up the project in OmniFocus at all. The antidote is a repeating &amp;quot;Work on&amp;quot; task that I can check off when I did an appropriate amount of work. Instead of defining the next step I&#39;m just working on it and especially in projects that are self evident, creative or not in need of lots of planning this is a great idea. Kaitlin&#39;s plug-in makes this thing now even better, because I can check the task off for the whole day and it won&#39;t come back until tomorrow. Great idea, great plug-in. Give it a try. P. S.: It&#39;s maybe slightly too early to write a post like this, but I just wanted to share my enthusiasm. So take it with a grain of salt - and ask me in 3 months if I&#39;m still using this. Previously. Forward

        https://blog.martin-haehnel.de/2023/07/16/there-is-a.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 612 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/15/dailydogo.html" />
      <updated>2023-07-15T18:59:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 612 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cdaabeb46923463f8329ee9e3db87d49.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 612 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 611 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/14/dailydogo.html" />
      <updated>2023-07-14T17:44:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 611 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2957ada9ba074905a83b13fcfbf9fe66.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 611 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I didn&#39;t sleep long....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/14/i-didnt-sleep.html" />
      <updated>2023-07-14T16:43:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/14/i-didnt-sleep.html</id>
      <content type="html">&lt;p&gt;I didn&#39;t sleep long. I didn&#39;t sleep deeply or well, really. But man, did I enjoy sleeping on the couch for a little bit just now. What a great start to the evening.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I didn&#39;t sleep long. I didn&#39;t sleep deeply or well, really. But man, did I enjoy sleeping on the couch for a little bit just now. What a great start to the evening.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 610 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/13/dailydogo.html" />
      <updated>2023-07-13T16:30:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 610 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 3748&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3748.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 3747&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/img-3747.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 610 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I can&#39;t get this out...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/13/i-cant-get.html" />
      <updated>2023-07-13T13:50:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/13/i-cant-get.html</id>
      <content type="html">&lt;p&gt;I can&#39;t get this out of my head: &lt;a href=&quot;https://mastodon.online/@virtualbri/110702150664776411&quot;&gt;mastodon.online/@virtualb...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Can&#39;t believe that at some point in my life I  wanted to live in the US. How fucked up are things over there, that they won&#39;t even respect unions anymore?&lt;/p&gt;
&lt;p&gt;I&#39;m happy to be living in Finland tbh, where unions and coops are actually very common.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I can&#39;t get this out of my head: mastodon.online/@virtualb... Can&#39;t believe that at some point in my life I wanted to live in the US. How fucked up are things over there, that they won&#39;t even respect unions anymore? I&#39;m happy to be living in Finland tbh, where unions and coops are actually very common.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 609 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/12/dailydogo.html" />
      <updated>2023-07-12T20:15:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 609 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b3116d28234f40b59cfe244649a235fc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 609 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A little thing I do,...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/12/a-little-thing.html" />
      <updated>2023-07-12T13:50:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/12/a-little-thing.html</id>
      <content type="html">&lt;p&gt;A little thing I do, when critiquing societal issues: I try to say what I think is wrong - morally or otherwise - and then try to formulate it as a requirement: In my future society, as a citizen, I&#39;d like X. This helps to stay constructive, I find. It also helps to formulate guidelines for my own actions.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A little thing I do, when critiquing societal issues: I try to say what I think is wrong - morally or otherwise - and then try to formulate it as a requirement: In my future society, as a citizen, I&#39;d like X. This helps to stay constructive, I find. It also helps to formulate guidelines for my own actions.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A good difference to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/12/a-good-difference.html" />
      <updated>2023-07-12T11:09:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/12/a-good-difference.html</id>
      <content type="html">&lt;p&gt;A good difference to make when talking about generating code through ChatGPT: It is much more of a molding process, than a writing process. Or: Using a chatbot to generate code is managing a bot. Managing (or molding) are a different kind of expertise than writing/programming. But you need to know how to program to manage your bot well, because you need to validate its output.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A good difference to make when talking about generating code through ChatGPT: It is much more of a molding process, than a writing process. Or: Using a chatbot to generate code is managing a bot. Managing (or molding) are a different kind of expertise than writing/programming. But you need to know how to program to manage your bot well, because you need to validate its output.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 608 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/11/dailydogo.html" />
      <updated>2023-07-11T18:21:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 608 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d7f822b2d858433c88529cf53654b215.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 608 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 607 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/10/dailydogo.html" />
      <updated>2023-07-10T20:31:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 607 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bdacf4f1f4dc4be7a66470ab021be96a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 607 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          PHPStorm&#39;s keybinding system is ridiculous



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html" />
      <updated>2023-07-10T09:52:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html</id>
      <content type="html">&lt;p&gt;It is no news that &lt;a href=&quot;https://blog.martin-haehnel.de/2022/06/16/ide-troubles-phpstorm.html&quot;&gt;I am pretty skeptical that PHPStorm is actually a good IDE&lt;/a&gt;. I especially question their handling of international keyboards. You see, on an international keyboard like &lt;a href=&quot;https://en.wikipedia.org/wiki/German_keyboard_layout&quot;&gt;the German one&lt;/a&gt; the keyboard shortcuts &lt;code&gt;cmd + shift + 7&lt;/code&gt; and &lt;code&gt;cmd + /&lt;/code&gt; are virtually the same, because there is no way to type a &lt;code&gt;/&lt;/code&gt; without typing &lt;code&gt;shift + 7&lt;/code&gt;.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;To my knowledge the only modern IDE that offers a default keymap for macOs that doesn&#39;t work out of the box with my default international keyboard is Jetbrain&#39;s offering. The reason is that some genius thought to implement key bindings without any understanding what symbols are necessarily typed by using a modifier key. So you end up with a keyboard shortcut like &lt;code&gt;cmd + /&lt;/code&gt; that doesn&#39;t work in PHPStorm, but will work out of the box in VS Code.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html#fn2&quot; id=&quot;fnref2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;P.S.: The problem is old btw.: &lt;a href=&quot;https://youtrack.jetbrains.com/issue/IDEA-165950&quot;&gt;The offical issue in their bug tracker is 7(!) years old&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.P.S.: Is this a hard problem? Maybe. The more interesting question to my mind is, though: Why is it a solved problem in all other IDEs? This is table stakes.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;By chance you can also type &lt;code&gt;cmd + devision symbol&lt;/code&gt;, but that is not the same as a forward slash and is indeed - and this time correctly - its own shortcut in PHPStorm. Try to type that one on a keyboard without a numpad, though - which means this shortcut is useless on all(!) MacBooks - if you don&#39;t have an external keyboard attached. &lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&quot;fn2&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;To be fair: The shortcut ends up being displayed as &lt;code&gt;shift + cmd + 7&lt;/code&gt;, but at least vsc won&#39;t act like &lt;code&gt;cmd + /&lt;/code&gt; and &lt;code&gt;cmd + shift + 7&lt;/code&gt; are completely different key bindings (which they are not). &lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html#fnref2&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        PHPStorm&#39;s keybinding system is ridiculous

        https://blog.martin-haehnel.de/2023/07/10/phpstorms-keybinding-system.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 606 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/09/dailydogo.html" />
      <updated>2023-07-09T20:06:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 606 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfeaf96f75eb4bb7b52e4bac7a782645.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 606 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 605 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/08/dailydogo.html" />
      <updated>2023-07-08T16:05:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 605 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/66bc6be673b9487fafe287a61483ca40.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 605 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          If in doubt: Eat...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/07/if-in-doubt.html" />
      <updated>2023-07-07T19:56:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/07/if-in-doubt.html</id>
      <content type="html">&lt;p&gt;If in doubt: Eat more sorbet.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        If in doubt: Eat more sorbet.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 604 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/07/dailydogo.html" />
      <updated>2023-07-07T16:10:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 604 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/35a21cb82de5444f862574db7aaee9d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 604 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 603 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/06/dailydogo.html" />
      <updated>2023-07-06T20:40:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 603 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a99e12aab3704700b4e049649038a1b4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 603 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 602 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/05/dailydogo.html" />
      <updated>2023-07-05T16:39:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 602 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed57d4922a154b66b495ccd0a551093a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 602 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 601 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/04/dailydogo.html" />
      <updated>2023-07-04T19:24:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 601 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6e41c17a30047cc8a791d8fe62dc0c9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 601 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 600 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/03/dailydogo.html" />
      <updated>2023-07-03T17:33:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 600 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfd7a3afef254124831d8af1b3dcfe3d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 600 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          First workday at the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/03/first-workday-at.html" />
      <updated>2023-07-03T06:11:25Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/03/first-workday-at.html</id>
      <content type="html">&lt;p&gt;First workday at the new company!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        First workday at the new company!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 599 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/02/212515.html" />
      <updated>2023-07-02T18:25:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/02/212515.html</id>
      <content type="html">&lt;p&gt;DailyDogo 599 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d46e460d0eca4bf885cc9434c3e1403a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 599 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 598 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/02/104635.html" />
      <updated>2023-07-02T07:46:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/02/104635.html</id>
      <content type="html">&lt;p&gt;DailyDogo 598 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a3490463982b46509cfe66e6d95e2ed5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 598 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 597 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/07/02/dailydogo.html" />
      <updated>2023-07-02T07:44:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/07/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 597 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e7684a094d87458ea344df9b9c276970.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 597 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 596 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/30/dailydogo.html" />
      <updated>2023-06-30T19:10:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 596 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7f95d508eb3846c18aa13d9ba3c325ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 596 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 595 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/28/dailydogo.html" />
      <updated>2023-06-28T19:41:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 595 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/06c6acf7f18c4f4ea9552c637453e506.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 595 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 594 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/27/dailydogo.html" />
      <updated>2023-06-27T17:04:51Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 594 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8c0ef3f978354abbb3c6b20dba5b3dcd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 594 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 593 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/26/202040.html" />
      <updated>2023-06-26T17:20:40Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/26/202040.html</id>
      <content type="html">&lt;p&gt;DailyDogo 593 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/129dd5aa73624f098219442066a3034b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 593 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 592 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/26/dailydogo.html" />
      <updated>2023-06-26T09:19:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 592 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f35c3fe566bf496eaf87d2ef9610658b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 592 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 591 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/24/185739.html" />
      <updated>2023-06-24T15:57:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/24/185739.html</id>
      <content type="html">&lt;p&gt;DailyDogo 591 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/09c937f2e2374e6293d2742e4a33c1ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 591 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Soooo. Does anybody...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/24/soooo-does-anybody.html" />
      <updated>2023-06-24T13:07:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/24/soooo-does-anybody.html</id>
      <content type="html">&lt;p&gt;Soooo. Does anybody know any alternatives to Frame Grabber? &lt;a href=&quot;https://arthurhammer.de/2023/06/frame-grabber-acquired/&quot;&gt;arthurhammer.de/2023/06/f...&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Soooo. Does anybody know any alternatives to Frame Grabber? arthurhammer.de/2023/06/f...</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 590 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/24/dailydogo.html" />
      <updated>2023-06-23T22:58:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 590 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c49c323cd8fe4dc29d24defbfde8bdc0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 590 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 589 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/23/dailydogo.html" />
      <updated>2023-06-22T21:07:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 589 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b14ee16f7cd3448aaa7d19278148894b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 589 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 588 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/21/dailydogo.html" />
      <updated>2023-06-21T19:08:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 588 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/622c5b1d8ac64e388ca23775eadc722e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 588 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 587 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/20/dailydogo.html" />
      <updated>2023-06-20T19:03:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 587 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c75a9b2784d483b8a72512aa4851221.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 587 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 586 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/19/dailydogo.html" />
      <updated>2023-06-19T20:41:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 586 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/eb07b96d8aec490aabdbe7af8a93246a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 586 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 585 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/18/dailydogo.html" />
      <updated>2023-06-18T18:25:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 585 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d124f2fbebf846acb77eca0c4d26338b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 585 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The (Hu)go template syntax is bad.



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/18/the-hugo-template.html" />
      <updated>2023-06-18T18:14:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/18/the-hugo-template.html</id>
      <content type="html">&lt;p&gt;There is no two ways about it. It&#39;s just bad and often counterintuitive. It&#39;s hard to read, hard to write, hard to debug, hard to fill in blanks. Easy things should be easy and hard things should be possible. I feel like everything is just hard with it - not impossible per se, but often harder then it should be.&lt;/p&gt;
&lt;p&gt;I mean just look at this one line:&lt;/p&gt;
&lt;pre class=&quot;language-go-html-template&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-go-html-template&quot;&gt;{{ $paginator := .Paginate (where .Site.Pages.ByDate.Reverse &quot;Type&quot; &quot;post&quot;) (index .Site.Params &quot;archive-paginate&quot; | default 25) }}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This does/means the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;$paginator&lt;/code&gt; - that&#39;s a custom variable, it needs to be prefixed with a &lt;code&gt;$&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;:=&lt;/code&gt; - you need to use this operator to declare a variable and assign a value. But later it&#39;s fine to just use &lt;code&gt;=&lt;/code&gt; to reassign it.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.&lt;/code&gt;  - &amp;quot;the dot&amp;quot;. It holds the context, which is basically a kind of scope. Why the scope is not implied? I don&#39;t know. I guess if you&#39;d have a &lt;code&gt;this&lt;/code&gt; keyword, you&#39;d end up writing &lt;code&gt;this.whatever…&lt;/code&gt; and you would still need to differentiate globals and in-scope vars, so I guess that&#39;s better?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.Paginate&lt;/code&gt; - Inside &amp;quot;the dot&amp;quot; there exists a &lt;code&gt;Paginate&lt;/code&gt; function which has to be upper case because that is the way to make a function visible outside of its &amp;quot;package&amp;quot; in go. If you look at &lt;a href=&quot;https://gohugo.io/functions/&quot;&gt;the list of available functions in hugo&lt;/a&gt;, you will know that a function was exported, but not why. Also a lot of functions were not exported, but you also do not know why. I assume that the lower case functions are all part of hugo&#39;s templating standard lib. But it&#39;s not explained what is going on in the docs explicitly.&lt;/li&gt;
&lt;li&gt;&lt;code&gt; &lt;/code&gt; - A space (yup). Functions and parameters are separated by spaces, so this space indicates the start of the Paginate function call (And not the parentheses in front of the &lt;code&gt;where&lt;/code&gt;, as one might think when coming from other languages).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(&lt;/code&gt; - The start of the parentheses denotes a nested expression.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;where&lt;/code&gt; - that&#39;s the &lt;code&gt;where&lt;/code&gt; function which takes an array and compares a value at a given key using an operator (equals is implied and can be omitted like has been done here) to a value and only keeps the elements that pass the test.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.Site.Pages.ByDate.Reverse&lt;/code&gt; - The &lt;code&gt;.Site.Pages&lt;/code&gt; part is an array of all pages of the blog. The &lt;code&gt;ByDate.Reverse&lt;/code&gt; part is used (and available only) on &lt;a href=&quot;https://gohugo.io/templates/lists/#what-is-a-list-page-template&quot;&gt;list pages&lt;/a&gt; - another detail you&#39;ll have to know - that is pages that have other pages under them in the file hierarchy. AND that the homepage is a special kind of list page. This is a snippet from the home page, so you can use it here to change the order of the retrieved array. Why you can&#39;t retrieve pages in similar manner on non list pages is unclear to me.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Type&amp;quot;&lt;/code&gt; - This is the key parameter of the &lt;code&gt;where&lt;/code&gt; function. The key is &amp;quot;Type&amp;quot; here. Why is &lt;code&gt;Type&lt;/code&gt; capitalized? Maybe it has to because of exports? Maybe it&#39;s some other reason that I don&#39;t know. In any case it is part of the keys of the element that is kept (or discarded). For the pages array an element includes things like a &lt;code&gt;Permalink&lt;/code&gt;, a published &lt;code&gt;Date&lt;/code&gt; and a also a &lt;code&gt;Type&lt;/code&gt;. How do you know what an element includes? Well, it&#39;s hard to say, because the &lt;a href=&quot;https://gohugo.io/templates/template-debugging/#what-variables-are-available-in-this-context&quot;&gt;proposed solution&lt;/a&gt; to use something like &lt;code&gt;&amp;amp;#123;&amp;amp;#123; printf &amp;quot;%#v&amp;quot; . }}&lt;/code&gt; within a range function call that references the pages from the &lt;code&gt;Paginator&lt;/code&gt; above only prints garbage. An actual solution is to use &lt;code&gt;&amp;lt;pre&amp;gt;&amp;amp;#123;&amp;amp;#123; . | jsonify (dict &amp;quot;indent&amp;quot; &amp;quot; &amp;quot;) }}&amp;lt;/pre&amp;gt;&lt;/code&gt; which gives a pretty printed JSON representation of all the available properties within a given context. But you&#39;ll not find this solution in the docs, you have to get lucky and find it in the forum or &lt;a href=&quot;https://stackoverflow.com/questions/64163573/how-to-inspect-variables-in-the-current-scope-in-hugo&quot;&gt;Stack Overflow&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;post&amp;quot;&lt;/code&gt; - this is the match parameter of the &lt;code&gt;where&lt;/code&gt; function. In other words the value found for the key &amp;quot;Type&amp;quot; must match this value in order to be included in the filtered array.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;) (&lt;/code&gt; - we finish one nested expression - which is parameter one of our &lt;code&gt;.Paginate&lt;/code&gt; call (the array to paginate) and start another nested expression - parameter two (the page size) of &lt;code&gt;.Paginate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;index .Site.Params &amp;quot;archive-paginate&amp;quot;&lt;/code&gt; - this returns the value at index or key n of a given array. So in this case the value at .SiteParams.archive-paginate&lt;/li&gt;
&lt;li&gt;&lt;code&gt; | default 25)&lt;/code&gt; if &lt;code&gt;index&lt;/code&gt; does not return a value the default function can take over and return a default value. I don&#39;t know why this has to be a function. I also find the whole part &lt;code&gt;index .Site.Params &amp;quot;archive-paginate&amp;quot; | default 25&lt;/code&gt; difficult to parse: Is the pipe still part of the index function call? You&#39;ll have to know what pipes are.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finally, we have parsed the whole thing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;instantiate customVar =
functionCallThatReturnsAPaginator(
    functionCallThatReturnsAFilteredArray,
    (
        functionCallThatReturnsANumber ||
        functionCallThatReturnsaAdefaultValue
    )
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And &lt;code&gt;.Paginator&lt;/code&gt; itself is just an object that makes it easier to refer to and implement a paged navigation for an array of given elements (posts).&lt;/p&gt;
&lt;p&gt;Apart from the unusual syntax I find (Hu)go templates hard to parse, even if I grok them somewhat. (Hu)go&#39;s way to write function expressions, namely using spaces instead of parentheses and commas make the whole line harder to read than it needs to be. Compare:&lt;/p&gt;
&lt;pre class=&quot;language-go-html-template&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-go-html-template&quot;&gt;{{ $paginator := .Paginate (where .Site.Pages.ByDate.Reverse &quot;Type&quot; &quot;post&quot;) (index .Site.Params &quot;archive-paginate&quot; | default 25) }}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;vs.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{{$paginator := .Paginate(where(.Site.Pages.ByDate.Reverse,&amp;quot;Type&amp;quot;,&amp;quot;post&amp;quot;),(index(.Site.Params,&amp;quot;archive-paginate&amp;quot;) | default(25)))}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Granted, this is still hard to read, because a lot is happening in this one line of code, but still: I&#39;d argue it&#39;s much easier to parse, because opening and closing parentheses and commas carry much more information than a simple space could. Spaces are also commonly used to align or balance things as has happened around the pipe char. Does this carry semantic meaning? Nope, not in this case!&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A visualization of what different symbols of the templating syntax mean in our example. It turns out that the space char carries three differnt meanings: an aesthtic space, a start of a parameter list, a delimiter between parameters.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2023-06-19-hugo-templating-sucks-2.jpeg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;The space is doing an enormous amount of overtime here and I have yet to see a good justification of muddling the waters like this. The only reason I could see is that you have to balance parentheses, meaning you&#39;re ending up with the line ending in &lt;code&gt;)))&lt;/code&gt;. The best part is that you still need parens in any case, you just have to put them around the whole function expression! The real template version safes you two parentheses for the price of a parsing headache. I feel like that&#39;s not worth it.&lt;/p&gt;
&lt;p&gt;Let&#39;s move on: It should be super easy to limit the list of pages to only include a certain category of posts, right? Would this have been what you&#39;d come up with on the first try?&lt;/p&gt;
&lt;pre class=&quot;language-go-html-template&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-go-html-template&quot;&gt;{{ $allPosts := where .Site.Pages.ByDate.Reverse &quot;Type&quot; &quot;post&quot; }}
{{ $allDailyDogos := where .Site.Pages &quot;Params.categories&quot; &quot;intersect&quot; (slice &quot;DailyDogo&quot;) }}
{{ $onlyDogos := intersect $allPosts $allDailyDogos }}
{{ $paginator := .Paginate ($onlyDogos) (index .Site.Params &quot;archive-paginate&quot; | default 25) }}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So far so good. How about the inverse? You&#39;ll find that there is no way to tell the line &lt;code&gt;$allDailyDogos&lt;/code&gt; to simply do the inverse. There is no &lt;code&gt;&amp;quot;not intersect&amp;quot;&lt;/code&gt; or whatever. You have to use another function called &lt;code&gt;symdiff&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-go-html-template&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-go-html-template&quot;&gt;{{ $allPosts := where .Site.Pages.ByDate.Reverse &quot;Type&quot; &quot;post&quot; }}
{{ $allDailyDogos := where .Site.Pages &quot;Params.categories&quot; &quot;intersect&quot; (slice &quot;DailyDogo&quot;) }}
{{ $noDogos := symdiff $allDailyDogos $allPosts }}
{{ $paginator := .Paginate ($noDogos) (index .Site.Params &quot;archive-paginate&quot; | default 25) }}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Symdiff is short for &lt;a href=&quot;https://en.wikipedia.org/wiki/Symmetric_difference&quot;&gt;symmetric difference&lt;/a&gt; and means here that we want all elements from the &lt;code&gt;$allPosts&lt;/code&gt; array that are not part of the &lt;code&gt;$allDailyDogos&lt;/code&gt; array. Meaning we are keeping only those posts, which is like filtering for the inverse of the &lt;code&gt;$onlyDogos&lt;/code&gt; array from before.&lt;/p&gt;
&lt;p&gt;We could have mashed this all into one line to make it totally unreadable, but I think this is instructive and it would have not been anymore readable in other template languages (if they even would&#39;ve been able to deal with this as a one liner). Still:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Why do I need to make a slice/array out of &amp;quot;DailyDogo&amp;quot;?&lt;/li&gt;
&lt;li&gt;Why is there no &lt;code&gt;NOT&lt;/code&gt; operator? - it would&#39;ve been nice in two instances: 1. inside the &lt;code&gt;where&lt;/code&gt; function to save an extra call to &lt;code&gt;symdiff&lt;/code&gt; or 2. as a better (I&#39;d say) alternative to using &lt;code&gt;symdiff&lt;/code&gt;, because people think more along the lines of &amp;quot;all but not these kinds of things&amp;quot; instead of &amp;quot;symmetrical difference of these two sets&amp;quot;.&lt;/li&gt;
&lt;li&gt;Why is it so hard to chain conditions to the &lt;code&gt;where&lt;/code&gt; function to the point where you&#39;d rather create two arrays instead of filtering the array down in one step?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ugh. There is so much in just this one line - and the subsequent slight changes I have done - that I find weird and unergonomic. I hope I could also show that it&#39;s not complete and utter failure to understand what&#39;s going on, either. Sometimes things are just badly designed for the most obvious use cases in order to accommodate fancier goals. I&#39;d rahter have a templating syntax/language that makes things easier. If that makes it more boring: Good. I&#39;m here to improve my blog first and foremost.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The (Hu)go template syntax is bad.

        https://blog.martin-haehnel.de/2023/06/18/the-hugo-template.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 584 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/17/dailydogo.html" />
      <updated>2023-06-17T19:44:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 584 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/341e766a3750465bafbad215c3475b4c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 584 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 583 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/16/dailydogo.html" />
      <updated>2023-06-16T19:08:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 583 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/22b506f37b314854a7ea2945ed7370db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 583 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 582 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/15/dailydogo.html" />
      <updated>2023-06-15T19:42:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 582 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c18c46e343.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 582 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 581 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/14/dailydogo.html" />
      <updated>2023-06-14T17:11:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 581 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ea2ec43e51.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 581 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 580 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/13/dailydogo.html" />
      <updated>2023-06-13T17:34:08Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 580 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/05ba862ca0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 580 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s really cool...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/13/its-really-cool.html" />
      <updated>2023-06-13T11:13:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/13/its-really-cool.html</id>
      <content type="html">&lt;p&gt;It&#39;s really cool that the upstairs neighbor has decided to renovate their apartment without notice for who knows how long right when my vacation starts. Love it. Love. It. Especially because it seems to include ripping out the floors, too.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s really cool that the upstairs neighbor has decided to renovate their apartment without notice for who knows how long right when my vacation starts. Love it. Love. It. Especially because it seems to include ripping out the floors, too.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 579 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/12/dailydogo.html" />
      <updated>2023-06-12T18:54:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 579 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a908084d1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 579 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously (Dead...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/12/quick-update-on.html" />
      <updated>2023-06-12T12:18:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/12/quick-update-on.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/11/27/if-there-would.html&quot;&gt;Previously (Dead Cells).&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/11/first-impression-of.html&quot;&gt;Previously (Diablo IV - same link as below).&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Quick update on &lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/11/first-impression-of.html&quot;&gt;my Diablo IV enjoyment&lt;/a&gt;: I don&#39;t have any. So I stopped playing and went back to DeadCells, which is so much more fun.&lt;/p&gt;
&lt;p&gt;What was nice, though: I tried to use my Steam Deck as a little gaming PC and it worked like a charm (if a little slow: there were a lot of frame rate drops while playing Diablo IV through &lt;a href=&quot;https://lutris.net&quot;&gt;Lutris&lt;/a&gt;). No need for a &lt;a href=&quot;https://www.steamdeck.com/en/dock&quot;&gt;Steam Deck Dock&lt;/a&gt; either, since I have had a USB-C hub laying around and that&#39;s enough. This opens up some nice possibilities in terms of playing non-mac games for me.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously (Dead Cells). Previously (Diablo IV - same link as below). Quick update on my Diablo IV enjoyment: I don&#39;t have any. So I stopped playing and went back to DeadCells, which is so much more fun. What was nice, though: I tried to use my Steam Deck as a little gaming PC and it worked like a charm (if a little slow: there were a lot of frame rate drops while playing Diablo IV through Lutris). No need for a Steam Deck Dock either, since I have had a USB-C hub laying around and that&#39;s enough. This opens up some nice possibilities in terms of playing non-mac games for me.

        https://blog.martin-haehnel.de/2023/06/12/quick-update-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 578 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/11/dailydogo.html" />
      <updated>2023-06-11T17:54:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 578 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5f84ec9d5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 578 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          First impression of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/11/first-impression-of.html" />
      <updated>2023-06-11T06:56:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/11/first-impression-of.html</id>
      <content type="html">&lt;p&gt;First impression of Diablo IV. I hate the MMORPG aspects of it. I don&#39;t need to see other people in my game. I don&#39;t plan nor want to interact with anyone when playing games.&lt;/p&gt;
&lt;p&gt;I also do not like how enemies spawn out of nowhere. In Diablo II you never saw them spawn - if that wasn&#39;t part of their mechanics. Enemies were always already there. Seeing them spawn is another MMORPG thing.&lt;/p&gt;
&lt;p&gt;Sadly a lot of Diablo IV&#39;s MMORPG elements make the game very slot-machine-y feeling. You click a bunch in front of a beautifully bleak backdrop and then you find loot. And that loot might be good or bad, but certainly you have always the chance to find better loot. As long as you just click a little more. To be clear: This has always been what Diablo was about, in the end - and maybe it&#39;s because I&#39;m older and/or maybe because you can&#39;t step into the same river twice - but I do not feel like story/progression and this game loop hang together correctly. It feels manipulative. Add on top the social elements - which are designed in a way that try to keep you in the game longer, by promising better rewards if you socialize (and forging relationships in a game like this makes it more likely for you to come back to socialize with game buddies) - and a shop to spend a weird in-game currency that you mostly can get by spending real-live money.&lt;/p&gt;
&lt;p&gt;Diablo IV is a glorified slot machine casino.&lt;/p&gt;
&lt;p&gt;That being sad, I have enjoyed the less gross aspects of the game, which is the campaign. (Mild spoilers ahead) I mostly like the lore - I&#39;m on level 22 maybe? - but even there I feel like that Lilith, the main antagonist, is too visible and not very mysterious. It seems weird that she is so hands on with her plans, interacting with villagers in far away, unimportant locations directly. Where are her underlings? As a villain she is not super interesting, I&#39;m afraid, and we haven&#39;t seen a lot of other interesting characters - good or bad - so far. If this is a problem of lore, or more a lacking aspect of world building, or story telling I don&#39;t know yet. It might be all of the above or maybe I&#39;ll change my mind. Diablo&#39;s stories have always been somewhat &lt;a href=&quot;https://en.wikipedia.org/wiki/Camp_(style)&quot;&gt;campy&lt;/a&gt;, but campy doesn&#39;t mean their story telling was bad.&lt;/p&gt;
&lt;p&gt;As you might imagine, I am not blown away by the game. A video game podcast I listen to, &lt;a href=&quot;https://maximumfun.org/episodes/triple-click/our-first-dive-into-diablo-iv/&quot;&gt;Tripple Click&lt;/a&gt;, likened the game to Destiny, which is a game with a similar slot machine loop built-in. I would relate it to Far Cry, which although different in many ways seems to me like yet another different take on the same basic idea: Loot-oriented, rpg-style, progressively open world-revealing, multiplayer friendly, story driven gaming.&lt;/p&gt;
&lt;p&gt;If all AAA games become one game - at least as far as the general design blue print is concerned - maybe AAA games are not for me anymore. I guess it&#39;s not fair to say, there are many different kinds of AAA games, but it at least feels like the amount of convergence has become more apparent over the last 10 years or so.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/12/quick-update-on.html&quot;&gt;Forward.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        First impression of Diablo IV. I hate the MMORPG aspects of it. I don&#39;t need to see other people in my game. I don&#39;t plan nor want to interact with anyone when playing games. I also do not like how enemies spawn out of nowhere. In Diablo II you never saw them spawn - if that wasn&#39;t part of their mechanics. Enemies were always already there. Seeing them spawn is another MMORPG thing. Sadly a lot of Diablo IV&#39;s MMORPG elements make the game very slot-machine-y feeling. You click a bunch in front of a beautifully bleak backdrop and then you find loot. And that loot might be good or bad, but certainly you have always the chance to find better loot. As long as you just click a little more. To be clear: This has always been what Diablo was about, in the end - and maybe it&#39;s because I&#39;m older and/or maybe because you can&#39;t step into the same river twice - but I do not feel like story/progression and this game loop hang together correctly. It feels manipulative. Add on top the social elements - which are designed in a way that try to keep you in the game longer, by promising better rewards if you socialize (and forging relationships in a game like this makes it more likely for you to come back to socialize with game buddies) - and a shop to spend a weird in-game currency that you mostly can get by spending real-live money. Diablo IV is a glorified slot machine casino. That being sad, I have enjoyed the less gross aspects of the game, which is the campaign. (Mild spoilers ahead) I mostly like the lore - I&#39;m on level 22 maybe? - but even there I feel like that Lilith, the main antagonist, is too visible and not very mysterious. It seems weird that she is so hands on with her plans, interacting with villagers in far away, unimportant locations directly. Where are her underlings? As a villain she is not super interesting, I&#39;m afraid, and we haven&#39;t seen a lot of other interesting characters - good or bad - so far. If this is a problem of lore, or more a lacking aspect of world building, or story telling I don&#39;t know yet. It might be all of the above or maybe I&#39;ll change my mind. Diablo&#39;s stories have always been somewhat campy, but campy doesn&#39;t mean their story telling was bad. As you might imagine, I am not blown away by the game. A video game podcast I listen to, Tripple Click, likened the game to Destiny, which is a game with a similar slot machine loop built-in. I would relate it to Far Cry, which although different in many ways seems to me like yet another different take on the same basic idea: Loot-oriented, rpg-style, progressively open world-revealing, multiplayer friendly, story driven gaming. If all AAA games become one game - at least as far as the general design blue print is concerned - maybe AAA games are not for me anymore. I guess it&#39;s not fair to say, there are many different kinds of AAA games, but it at least feels like the amount of convergence has become more apparent over the last 10 years or so. Forward.

        https://blog.martin-haehnel.de/2023/06/11/first-impression-of.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 577 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/10/dailydogo.html" />
      <updated>2023-06-10T20:16:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 577 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a600cc2b87.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 577 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A little addition to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/10/a-little-addition.html" />
      <updated>2023-06-10T11:48:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/10/a-little-addition.html</id>
      <content type="html">&lt;p&gt;A little addition to what I said &lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/03/some-ways-in.html&quot;&gt;the other day&lt;/a&gt;: The &amp;quot;take notes to reach your goals&amp;quot; is kinda important. Because I am a believer that you actually shouldn&#39;t take (too many) notes that are not in some productive way connected to what you want to achieve.&lt;/p&gt;
&lt;p&gt;The world is big. And the amount of potential notes you could take is immense. In my own note taking I try to frame the act of note taking as an activity done by an author, not an archivist. Be an author or creator and find ways in which note taking can support you, but try not to fall into the trap of writing everything down.&lt;sup class=&quot;footnote-ref&quot;&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/10/a-little-addition.html#fn1&quot; id=&quot;fnref1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; Your job is not to have the perfect Zettelkasten (or whatever), but to have and stay in contact with whatever it is your try to do with your life.&lt;/p&gt;
&lt;hr class=&quot;footnotes-sep&quot;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn1&quot; class=&quot;footnote-item&quot;&gt;&lt;p&gt;Even worse: trying to perfect all this random stuff: By making everything a beautiful, artfully crafted perfect little note. No! Only do that with the stuff that makes you better in your job/helps you reach your goals. &lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/10/a-little-addition.html#fnref1&quot; class=&quot;footnote-backref&quot;&gt;↩︎&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
</content>
      
      <echofeed:content type="html">
        A little addition to what I said the other day: The &amp;quot;take notes to reach your goals&amp;quot; is kinda important. Because I am a believer that you actually shouldn&#39;t take (too many) notes that are not in some productive way connected to what you want to achieve. The world is big. And the amount of potential notes you could take is immense. In my own note taking I try to frame the act of note taking as an activity done by an author, not an archivist. Be an author or creator and find ways in which note taking can support you, but try not to fall into the trap of writing everything down.[1] Your job is not to have the perfect Zettelkasten (or whatever), but to have and stay in contact with whatever it is your try to do with your life. Even worse: trying to perfect all this random stuff: By making everything a beautiful, artfully crafted perfect little note. No! Only do that with the stuff that makes you better in your job/helps you reach your goals. ↩︎

        https://blog.martin-haehnel.de/2023/06/10/a-little-addition.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 576 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/09/dailydogo.html" />
      <updated>2023-06-09T19:26:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 576 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/23cd646766.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 576 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 575 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/08/dailydogo.html" />
      <updated>2023-06-08T17:18:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 575 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/95a8f93382.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 575 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 574 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/07/dailydogo.html" />
      <updated>2023-06-07T17:26:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 574 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/34a810988f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 574 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 573 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/06/dailydogo.html" />
      <updated>2023-06-06T16:15:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 573 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/feddad7504.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 573 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I wonder if the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/06/i-wonder-if.html" />
      <updated>2023-06-06T09:20:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/06/i-wonder-if.html</id>
      <content type="html">&lt;p&gt;I wonder if the dystopian looks of AR/VR headsets are really the problem. I can see that they don&#39;t translate well to PR story telling: People find it creepy to look at.&lt;/p&gt;
&lt;p&gt;But I do wonder if that even matters. If we think about people&#39;s desktop setups right now - with multiple displays, the users hunched over a keyboard, cables everywhere, big headphones cutting us off, probably looking at a wall, instead of the room - isn&#39;t this just as dystopian? What the current aesthetics of every day computing has going for itself in comparison to a headset blocking our view of the real(?) world is that you can make it look somewhat palatable in photos and videos.&lt;/p&gt;
&lt;p&gt;If you hide the cables and clean the desk, it can be made to look somewhat pleasing even. But that&#39;s not really how most computing places look.&lt;/p&gt;
&lt;p&gt;In practice there are finger prints, bread crumbs, cables not very well hidden, there is fan noise, dust, asymmetry. And then we sit in front of these machines for hours on end. Computers brake our bodies. There is nothing innocent about using &amp;quot;normal&amp;quot; computers today. This is true also for handheld devices.&lt;/p&gt;
&lt;p&gt;It seems to me that there are two directions to answer to this status quo. The first is a kind of digital ludditism: &amp;quot;We should use less screens, we should go out, we should not be so dependent and addicted to our computing devices.&amp;quot; The second is an optimistic affirmation of technological progress: &amp;quot;All the computing around us is great, the future is bright. I&#39;m excited.&amp;quot; And then there are mixed versions: &amp;quot;Computers are great in moderation.&amp;quot; Or: &amp;quot;Computers are a necessary evil.&amp;quot;&lt;/p&gt;
&lt;p&gt;I&#39;ll add to the mix a stance that is all too often called fatalism: Computers are inevitable. And furthermore: There is no choice involved. It doesn&#39;t really matter if we like or dislike technology. What matters is if technology is able to reorganize society around itself sufficiently. If a technology - take the smartphone - is able to do so, we&#39;ll find all kinds of excuses - that&#39;s the wrong word, because there is no value judgement implied, but merely a description of a general discourse dynamic - to not find it creepy or dystopian. In practice the reorganization has more to do with making certain kinds of activities more interesting, effective, productive - or, in short: more likely. If an activity sufficiently occurs mediated by a new technology - for whatever reason - that new technology will be adopted.&lt;/p&gt;
&lt;p&gt;And when it has been sufficiently adopted, perceived PR problems are none anymore. But let&#39;s not kid ourselves that it would be PR that makes this possible. PR can - maybe! - help to establish some use cases or open the door, but it&#39;s the actual use that leads to an uptake in the likelihood of (mediated) activities. And that&#39;s where the difference lies. That in turn doesn&#39;t mean that PR is useless either. PR makes things appear pleasant, which is nice.&lt;/p&gt;
&lt;p&gt;Coming back to AR/VR headsets: The problem of these technologies so far is that they do not make you play more games or take more meetings, or whatever. The technology is not persuasive enough to get over the uncanny valley. But, again, it&#39;s not the uncanny valley itself that make them unsuccessful so far.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I wonder if the dystopian looks of AR/VR headsets are really the problem. I can see that they don&#39;t translate well to PR story telling: People find it creepy to look at. But I do wonder if that even matters. If we think about people&#39;s desktop setups right now - with multiple displays, the users hunched over a keyboard, cables everywhere, big headphones cutting us off, probably looking at a wall, instead of the room - isn&#39;t this just as dystopian? What the current aesthetics of every day computing has going for itself in comparison to a headset blocking our view of the real(?) world is that you can make it look somewhat palatable in photos and videos. If you hide the cables and clean the desk, it can be made to look somewhat pleasing even. But that&#39;s not really how most computing places look. In practice there are finger prints, bread crumbs, cables not very well hidden, there is fan noise, dust, asymmetry. And then we sit in front of these machines for hours on end. Computers brake our bodies. There is nothing innocent about using &amp;quot;normal&amp;quot; computers today. This is true also for handheld devices. It seems to me that there are two directions to answer to this status quo. The first is a kind of digital ludditism: &amp;quot;We should use less screens, we should go out, we should not be so dependent and addicted to our computing devices.&amp;quot; The second is an optimistic affirmation of technological progress: &amp;quot;All the computing around us is great, the future is bright. I&#39;m excited.&amp;quot; And then there are mixed versions: &amp;quot;Computers are great in moderation.&amp;quot; Or: &amp;quot;Computers are a necessary evil.&amp;quot; I&#39;ll add to the mix a stance that is all too often called fatalism: Computers are inevitable. And furthermore: There is no choice involved. It doesn&#39;t really matter if we like or dislike technology. What matters is if technology is able to reorganize society around itself sufficiently. If a technology - take the smartphone - is able to do so, we&#39;ll find all kinds of excuses - that&#39;s the wrong word, because there is no value judgement implied, but merely a description of a general discourse dynamic - to not find it creepy or dystopian. In practice the reorganization has more to do with making certain kinds of activities more interesting, effective, productive - or, in short: more likely. If an activity sufficiently occurs mediated by a new technology - for whatever reason - that new technology will be adopted. And when it has been sufficiently adopted, perceived PR problems are none anymore. But let&#39;s not kid ourselves that it would be PR that makes this possible. PR can - maybe! - help to establish some use cases or open the door, but it&#39;s the actual use that leads to an uptake in the likelihood of (mediated) activities. And that&#39;s where the difference lies. That in turn doesn&#39;t mean that PR is useless either. PR makes things appear pleasant, which is nice. Coming back to AR/VR headsets: The problem of these technologies so far is that they do not make you play more games or take more meetings, or whatever. The technology is not persuasive enough to get over the uncanny valley. But, again, it&#39;s not the uncanny valley itself that make them unsuccessful so far.

        https://blog.martin-haehnel.de/2023/06/06/i-wonder-if.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          About the Vision...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/05/about-the-vision.html" />
      <updated>2023-06-05T20:00:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/05/about-the-vision.html</id>
      <content type="html">&lt;p&gt;About the Vision Pro: I don&#39;t think I would ever pay that much for a device. Except if &lt;em&gt;I&lt;/em&gt; would be using it to make money myself.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        About the Vision Pro: I don&#39;t think I would ever pay that much for a device. Except if I would be using it to make money myself.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I do wonder if it&#39;ll...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/05/i-do-wonder.html" />
      <updated>2023-06-05T19:24:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/05/i-do-wonder.html</id>
      <content type="html">&lt;p&gt;I do wonder if it&#39;ll matter, that people don&#39;t like how the new Apple Headset &lt;em&gt;looks&lt;/em&gt;. That it&#39;s creepy and dystopian &lt;em&gt;looking&lt;/em&gt;. It&#39;s interesting to me that it&#39;s the aesthetics and the way you look for others while wearing the thing.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I do wonder if it&#39;ll matter, that people don&#39;t like how the new Apple Headset looks. That it&#39;s creepy and dystopian looking. It&#39;s interesting to me that it&#39;s the aesthetics and the way you look for others while wearing the thing.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 573 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/05/dailydogo.html" />
      <updated>2023-06-05T19:12:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 573 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b283790fc6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 573 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 572 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/04/193714.html" />
      <updated>2023-06-04T16:37:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/04/193714.html</id>
      <content type="html">&lt;p&gt;DailyDogo 572 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4fe1ec8947.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 572 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 571 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/04/dailydogo.html" />
      <updated>2023-06-04T06:03:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 571 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/942c98f0ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 571 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          God damnit, Karelian...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/03/god-damnit-karelian.html" />
      <updated>2023-06-03T18:32:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/03/god-damnit-karelian.html</id>
      <content type="html">&lt;p&gt;God damnit, Karelian pies are so good! 🇫🇮&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        God damnit, Karelian pies are so good! 🇫🇮</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Some ways in which...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/03/some-ways-in.html" />
      <updated>2023-06-03T14:52:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/03/some-ways-in.html</id>
      <content type="html">&lt;p&gt;Some ways in which notes can help to reach goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Finding goals and planning them out&lt;/li&gt;
&lt;li&gt;Tracking progress&lt;/li&gt;
&lt;li&gt;Colleting ideas&lt;/li&gt;
&lt;li&gt;organizing Tasks&lt;/li&gt;
&lt;li&gt;Reflecting on all of the above&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some ways in which some types of notes can make you write more notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;running list notes - as long as a list is active, new things have to be added to it to keep it active&lt;/li&gt;
&lt;li&gt;check list notes - check lists have to be used&lt;/li&gt;
&lt;li&gt;&amp;quot;forms&amp;quot; - forms have to be filled (could also be a single field form, like a prompt note)&lt;/li&gt;
&lt;li&gt;seed notes - have to be edited/refactored&lt;/li&gt;
&lt;li&gt;notes with complex ideas - will have to be explained by other notes that may not exist yet or have to bridged to be able to be linked&lt;/li&gt;
&lt;li&gt;highlights/notes of reading materials - are not even real notes yet!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think that one trick to make note taking make sense is to arrange your note taking in a way that leads to more note taking and then to make that note taking about reaching your goals. I say &amp;quot;and then&amp;quot; but both things (which are goals in themselves) have to be front and center all the time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Some ways in which notes can help to reach goals: Finding goals and planning them out Tracking progress Colleting ideas organizing Tasks Reflecting on all of the above Some ways in which some types of notes can make you write more notes: running list notes - as long as a list is active, new things have to be added to it to keep it active check list notes - check lists have to be used &amp;quot;forms&amp;quot; - forms have to be filled (could also be a single field form, like a prompt note) seed notes - have to be edited/refactored notes with complex ideas - will have to be explained by other notes that may not exist yet or have to bridged to be able to be linked highlights/notes of reading materials - are not even real notes yet! I think that one trick to make note taking make sense is to arrange your note taking in a way that leads to more note taking and then to make that note taking about reaching your goals. I say &amp;quot;and then&amp;quot; but both things (which are goals in themselves) have to be front and center all the time.

        https://blog.martin-haehnel.de/2023/06/03/some-ways-in.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Quick note on the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/03/quick-note-on.html" />
      <updated>2023-06-02T22:08:16Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/03/quick-note-on.html</id>
      <content type="html">&lt;p&gt;Quick note on the &lt;a href=&quot;https://www.reddit.com/r/modnews/comments/13wshdp/comment/jmddl3u/&quot;&gt;terrible&lt;/a&gt;, &lt;a href=&quot;https://www.reddit.com/r/redditdev/comments/13wsiks/comment/jmnj9xc/&quot;&gt;terrible&lt;/a&gt; reddit api pricing and how it affects &lt;a href=&quot;https://www.reddit.com/r/apolloapp/comments/13ws4w3/had_a_call_with_reddit_to_discuss_pricing_bad/&quot;&gt;apps like Apollo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;ll admit that my reddit usage has been barely existent in the last few years, but the last time I used reddit, I used it through the excellent app Apollo.&lt;/p&gt;
&lt;p&gt;Apart from being upset by the sheer audacity and the way in which this was communicated, I always hope in moments like this, that we would move on collectively to more federated, less monopolistic ways of organizing ourselves online.&lt;/p&gt;
&lt;p&gt;It would need large-scale adoption of paying by users - surely not 100%, but more than the 5% you hear often - for such a thing to occur, I think. People who are less technically inclined and maybe have less of an interest - ideological, anthropological or otherwise - would need to be part of this. I&#39;m not very hopeful that they ever will.&lt;/p&gt;
&lt;p&gt;There is a certain kind of perverse satisfaction to observe how some of these giants of social media are failing right now. But I&#39;m not optimistic enough that all or even a significant portion of the people will make the jump because of this. Platforms like Instagram and TikTok seem to continue to thrive.&lt;/p&gt;
&lt;p&gt;But for me, right now, there is a lot to see and do in places like micro.blog and mastodon. I hope it stays that way and maybe, just maybe, there are enough interesting people on these platforms that the &amp;quot;normies&amp;quot; will come over (and stay), too. It seems like this would lead to a healthier, more democratic future.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Quick note on the terrible, terrible reddit api pricing and how it affects apps like Apollo. I&#39;ll admit that my reddit usage has been barely existent in the last few years, but the last time I used reddit, I used it through the excellent app Apollo. Apart from being upset by the sheer audacity and the way in which this was communicated, I always hope in moments like this, that we would move on collectively to more federated, less monopolistic ways of organizing ourselves online. It would need large-scale adoption of paying by users - surely not 100%, but more than the 5% you hear often - for such a thing to occur, I think. People who are less technically inclined and maybe have less of an interest - ideological, anthropological or otherwise - would need to be part of this. I&#39;m not very hopeful that they ever will. There is a certain kind of perverse satisfaction to observe how some of these giants of social media are failing right now. But I&#39;m not optimistic enough that all or even a significant portion of the people will make the jump because of this. Platforms like Instagram and TikTok seem to continue to thrive. But for me, right now, there is a lot to see and do in places like micro.blog and mastodon. I hope it stays that way and maybe, just maybe, there are enough interesting people on these platforms that the &amp;quot;normies&amp;quot; will come over (and stay), too. It seems like this would lead to a healthier, more democratic future.

        https://blog.martin-haehnel.de/2023/06/03/quick-note-on.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 570 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/02/dailydogo.html" />
      <updated>2023-06-02T18:35:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 570 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3b1241bca5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 570 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [From the faq page...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/02/from-the-faq.html" />
      <updated>2023-06-02T13:18:16Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/02/from-the-faq.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.logitech.com/en-eu/software/logi-options-plus.html#software-download&quot;&gt;From the faq page of the mouse config tool &amp;quot;logi options+&amp;quot;&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Why is it called Logi Options+? Do I have to pay for it?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The ‘+’ stands for better design and user experience, with more features available over time. The app is free to use.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Always good if you have to explain that the new app is better designed and has an improved user experience, because it&#39;s not obvious to the user wtf the name even stands for…&lt;/p&gt;
&lt;p&gt;P.S.: Just to be clear: This app is a piece of garbage and breaks frequently.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        From the faq page of the mouse config tool &amp;quot;logi options+&amp;quot;: Why is it called Logi Options+? Do I have to pay for it? The ‘+’ stands for better design and user experience, with more features available over time. The app is free to use. Always good if you have to explain that the new app is better designed and has an improved user experience, because it&#39;s not obvious to the user wtf the name even stands for… P.S.: Just to be clear: This app is a piece of garbage and breaks frequently.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Quick note [about...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/02/103909.html" />
      <updated>2023-06-02T07:39:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/02/103909.html</id>
      <content type="html">&lt;p&gt;Quick note &lt;a href=&quot;https://obsidian.md/blog/new-obsidian-icon/&quot;&gt;about Obsidian&#39;s new icon&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;For me it&#39;s more of a warning sign than reason to celebrate. The only time I want to see a rebrand is if the old brand was offensive. &lt;a href=&quot;https://www.mlb.com/news/cleveland-indians-change-name-to-guardians&quot;&gt;The Cleveland Indians/Guardians rebrand comes to mind.&lt;/a&gt; Otherwise I do not care directly.&lt;/p&gt;
&lt;p&gt;I do care however about the meaning behind a rebrand. It seems the public facing reason is &amp;quot;the new icon represents our values&amp;quot; which is not inspiring confidence. It sounds too business-y, even if the values themselves sound good.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forum.obsidian.md/t/likely-origin-of-the-obsidian-icon/43636&quot;&gt;The old logo was licensed cc-by&lt;/a&gt; - so maybe they didn&#39;t like that and changing the logo had mostly practical reasons and then they took the opportunity to strengthened their visual identity. Who knows really? But I take a rebrand as an indicator of &amp;quot;corporatification&amp;quot;: Grown ups (managers) showed up in the beautiful workshop that built Obsidian and needed to reduce the complexity of an ongoing project like this down to its perceived core, forgetting as always that illegibility is a non-debatable fact of reality. Reducing complexity is changing what you found, not stripping away inessential parts. We&#39;ll see if they can hang.&lt;/p&gt;
&lt;p&gt;In short: The best case scenario is that nothing will change. Dynalist inc. (the company behind Obsidian) will continue to make &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;a great app&lt;/a&gt; and that&#39;s it. Worst case scenario: There will be changes in the approach and the business practices to satisfy things like &amp;quot;growth&amp;quot; and &amp;quot;revenue&amp;quot;. Ugh. Let&#39;s hope this is not an early indicator of Obsidian being the next Evernote...&lt;/p&gt;
&lt;p&gt;P.S: &lt;a href=&quot;https://1password.social/@1password/110233053098985719&quot;&gt;1Password rebranded recently, too&lt;/a&gt;. Shortly after &lt;a href=&quot;https://blog.1password.com/privacy-preserving-app-telemetry/&quot;&gt;they also added telemetry&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Quick note about Obsidian&#39;s new icon: For me it&#39;s more of a warning sign than reason to celebrate. The only time I want to see a rebrand is if the old brand was offensive. The Cleveland Indians/Guardians rebrand comes to mind. Otherwise I do not care directly. I do care however about the meaning behind a rebrand. It seems the public facing reason is &amp;quot;the new icon represents our values&amp;quot; which is not inspiring confidence. It sounds too business-y, even if the values themselves sound good. The old logo was licensed cc-by - so maybe they didn&#39;t like that and changing the logo had mostly practical reasons and then they took the opportunity to strengthened their visual identity. Who knows really? But I take a rebrand as an indicator of &amp;quot;corporatification&amp;quot;: Grown ups (managers) showed up in the beautiful workshop that built Obsidian and needed to reduce the complexity of an ongoing project like this down to its perceived core, forgetting as always that illegibility is a non-debatable fact of reality. Reducing complexity is changing what you found, not stripping away inessential parts. We&#39;ll see if they can hang. In short: The best case scenario is that nothing will change. Dynalist inc. (the company behind Obsidian) will continue to make a great app and that&#39;s it. Worst case scenario: There will be changes in the approach and the business practices to satisfy things like &amp;quot;growth&amp;quot; and &amp;quot;revenue&amp;quot;. Ugh. Let&#39;s hope this is not an early indicator of Obsidian being the next Evernote... P.S: 1Password rebranded recently, too. Shortly after they also added telemetry.

        https://blog.martin-haehnel.de/2023/06/02/103909.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Quick note about...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/02/quick-note-about.html" />
      <updated>2023-06-02T06:43:01Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/02/quick-note-about.html</id>
      <content type="html">&lt;p&gt;Quick note about &lt;a href=&quot;https://atp.fm/537&quot;&gt;the recent discussion&lt;/a&gt; about pricing of apps on &lt;a href=&quot;https://micro.blog/atpfm@mastodon.social&quot;&gt;@atpfm@mastodon.social&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;I agree with almost everything that has been said by the hosts as regards to subscription pricing vs. &amp;quot;lifetime unlock&amp;quot;. It&#39;s very obvious that it&#39;s a better model for developers. However I think it&#39;s important to point out, that it would not be - at least not immediately - in the best interest of potential customers to agree. Saving money is always great. Not having to worry about stuff like canceling subscriptions is always great. Psychology matters. Even if there is a second order argument to be made about the benefits of subscriptions for customers: Loss aversion is a real thing.&lt;/p&gt;
&lt;p&gt;Related: Marco&#39;s very old blog post &lt;a href=&quot;https://marco.org/2012/02/25/right-vs-pragmatic&quot;&gt;Right versus pragmatic&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;P.S.: I&#39;m trying to get myself blogging again by doing some more posts in this style: Short comments or observations without lots of explanation and context. Let&#39;s see how that goes.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Quick note about the recent discussion about pricing of apps on @atpfm@mastodon.social: I agree with almost everything that has been said by the hosts as regards to subscription pricing vs. &amp;quot;lifetime unlock&amp;quot;. It&#39;s very obvious that it&#39;s a better model for developers. However I think it&#39;s important to point out, that it would not be - at least not immediately - in the best interest of potential customers to agree. Saving money is always great. Not having to worry about stuff like canceling subscriptions is always great. Psychology matters. Even if there is a second order argument to be made about the benefits of subscriptions for customers: Loss aversion is a real thing. Related: Marco&#39;s very old blog post Right versus pragmatic. P.S.: I&#39;m trying to get myself blogging again by doing some more posts in this style: Short comments or observations without lots of explanation and context. Let&#39;s see how that goes.

        https://blog.martin-haehnel.de/2023/06/02/quick-note-about.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 569 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/06/01/dailydogo.html" />
      <updated>2023-06-01T19:06:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/06/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 569 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/48ac09d01c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 569 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 568 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/31/dailydogo.html" />
      <updated>2023-05-31T19:40:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 568 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ff80f2f6a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 568 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 567 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/30/191205.html" />
      <updated>2023-05-30T16:12:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/30/191205.html</id>
      <content type="html">&lt;p&gt;DailyDogo 567 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0de10ba02d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 567 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 566 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/30/dailydogo.html" />
      <updated>2023-05-30T10:29:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 566 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/72be283488.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 566 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 565 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/29/dailydogo.html" />
      <updated>2023-05-28T21:14:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 565 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4c0c2397a0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 565 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 564 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/27/214859.html" />
      <updated>2023-05-27T18:48:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/27/214859.html</id>
      <content type="html">&lt;p&gt;DailyDogo 564 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/da03874078.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 564 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 563 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/27/dailydogo.html" />
      <updated>2023-05-27T10:47:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 563 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0e731c8826.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 563 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 562 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/25/dailydogo.html" />
      <updated>2023-05-25T20:18:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 562 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/40d4f5647a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 562 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 561 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/24/dailydogo.html" />
      <updated>2023-05-24T19:38:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 561 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/76f3c6fa95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 561 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 560 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/23/dailydogo.html" />
      <updated>2023-05-23T20:30:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 560 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0d85b4753a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 560 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 559 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/22/dailydogo.html" />
      <updated>2023-05-22T18:24:40Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 559 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5c972eb4f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 559 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 558 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/21/dailydogo.html" />
      <updated>2023-05-21T17:59:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 558 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b4670829a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 558 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 557 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/20/dailydogo.html" />
      <updated>2023-05-20T18:02:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 557 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e82d7f7fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 557 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 556 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/19/dailydogo.html" />
      <updated>2023-05-19T20:03:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 556 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5a4719de97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 556 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 555 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/18/dailydogo.html" />
      <updated>2023-05-18T17:47:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 555 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3d438d1d26.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 555 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 554 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/17/dailydogo.html" />
      <updated>2023-05-17T16:12:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 554 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/015fe91121.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 554 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 553 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/16/dailydogo.html" />
      <updated>2023-05-16T18:52:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 553 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dad16c6b1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 553 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 552 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/15/dailydogo.html" />
      <updated>2023-05-15T16:19:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 552 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/cbc76de9e0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 552 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Not gonna lie: The...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/15/not-gonna-lie.html" />
      <updated>2023-05-15T10:18:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/15/not-gonna-lie.html</id>
      <content type="html">&lt;p&gt;Not gonna lie: The last couple of weeks in my current job have been… trying. Being annoyed always triggers anxiety in me and so this is no different. I notice it in how little I get done and in the quality of the little that I am able to do. Stuff like this is truly paralysing to me.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Not gonna lie: The last couple of weeks in my current job have been… trying. Being annoyed always triggers anxiety in me and so this is no different. I notice it in how little I get done and in the quality of the little that I am able to do. Stuff like this is truly paralysing to me.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 551 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/14/201718.html" />
      <updated>2023-05-14T17:17:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/14/201718.html</id>
      <content type="html">&lt;p&gt;DailyDogo 551 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/568d63fc8a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 551 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 550 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/14/dailydogo.html" />
      <updated>2023-05-14T09:43:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 550 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bfa100b943.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 550 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          As exciting as app...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/13/as-exciting-as.html" />
      <updated>2023-05-13T15:10:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/13/as-exciting-as.html</id>
      <content type="html">&lt;p&gt;As exciting as app development for iOS/MacOS sounds (being an indy is actually a dream of mine), the abhorrent state of documentation AND support in case of bugs makes it much less appealing than staying in my web development lane as a corporate stooge.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        As exciting as app development for iOS/MacOS sounds (being an indy is actually a dream of mine), the abhorrent state of documentation AND support in case of bugs makes it much less appealing than staying in my web development lane as a corporate stooge.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 549 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/12/dailydogo.html" />
      <updated>2023-05-12T20:00:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 549 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/53ff66fdc9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 549 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 548 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/11/dailydogo.html" />
      <updated>2023-05-11T17:09:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 548 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/10da342275.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 548 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 547 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/10/dailydogo.html" />
      <updated>2023-05-10T18:51:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 547 🐶&lt;/p&gt;
&lt;p&gt;&lt;video controls=&quot;controls&quot; playsinline=&quot;playsinline&quot; src=&quot;https://blog.martin-haehnel.de/uploads/2023/59eb287eb6.mov&quot; width=&quot;360&quot; height=&quot;640&quot; poster=&quot;https://blog.martin-haehnel.de/uploads/2023/bb6cb04686.png&quot; preload=&quot;none&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 547 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 546 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/09/192237.html" />
      <updated>2023-05-09T16:22:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/09/192237.html</id>
      <content type="html">&lt;p&gt;DailyDogo 546 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/272791471a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 546 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously.](/2022/...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/09/previously-two-more.html" />
      <updated>2023-05-09T08:39:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/09/previously-two-more.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html&quot;&gt;Previously.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two more promising apps:&lt;/p&gt;
&lt;p&gt;I&#39;m a big fan of noise and music apps and podcasts for focus and sleep. &lt;a href=&quot;https://darknoise.app&quot;&gt;Dark Noise 3&lt;/a&gt; is a great one that was new to me. Especially its Green Noise sound is very soothing to me.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.getsequel.app&quot;&gt;Sequel 2&lt;/a&gt; is probably the first media tracking app, that I am actually using (for a few weeks at least). It&#39;s easy to use and has just the right amount of bells and whistles. This works better for me than, say, Trakt.tv, because I don&#39;t need nor want the social network aspect and I do want to track more than just one type of media.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/11/27/if-there-would.html&quot;&gt;Forward. (Sequel 2)&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously. Two more promising apps: I&#39;m a big fan of noise and music apps and podcasts for focus and sleep. Dark Noise 3 is a great one that was new to me. Especially its Green Noise sound is very soothing to me. Sequel 2 is probably the first media tracking app, that I am actually using (for a few weeks at least). It&#39;s easy to use and has just the right amount of bells and whistles. This works better for me than, say, Trakt.tv, because I don&#39;t need nor want the social network aspect and I do want to track more than just one type of media. Forward. (Sequel 2)

        https://blog.martin-haehnel.de/2023/05/09/previously-two-more.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 545 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/09/dailydogo.html" />
      <updated>2023-05-08T21:05:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 545 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00de126ea2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 545 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 544 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/07/dailydogo.html" />
      <updated>2023-05-07T16:01:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 544 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7473aea602.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 544 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 543 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/06/dailydogo.html" />
      <updated>2023-05-06T17:07:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 543 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3cf4e9a289.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 543 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 542 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/05/dailydogo.html" />
      <updated>2023-05-05T16:11:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 542 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e13d91d44.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 542 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 541 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/04/dailydogo.html" />
      <updated>2023-05-04T17:08:51Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 541 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/137941241f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 541 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Great...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/04/great-episode-of.html" />
      <updated>2023-05-04T10:12:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/04/great-episode-of.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.relay.fm/clockwise/501&quot;&gt;Great Episode&lt;/a&gt; of @clockwise@relayfm.social. The message of trying to stay even keeled, working for better legislation instead of engaging in shouting matches, understanding that you can&#39;t change what has already happened (you can only work with it), not only works for AI but also for climate change.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Great Episode of @clockwise@relayfm.social. The message of trying to stay even keeled, working for better legislation instead of engaging in shouting matches, understanding that you can&#39;t change what has already happened (you can only work with it), not only works for AI but also for climate change.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Had the weirdest...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/04/had-the-weirdest.html" />
      <updated>2023-05-04T07:34:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/04/had-the-weirdest.html</id>
      <content type="html">&lt;p&gt;Had the weirdest stress dream last night: I dreamt that I agreed to buy one kind of computer for my new job, but then bought another. The rest of the dream consisted of me trying to hide this fact (I am 100% remote) from my coworkers and higher ups.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Had the weirdest stress dream last night: I dreamt that I agreed to buy one kind of computer for my new job, but then bought another. The rest of the dream consisted of me trying to hide this fact (I am 100% remote) from my coworkers and higher ups.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 540 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/03/dailydogo.html" />
      <updated>2023-05-03T17:48:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 540 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a7d34c2ad6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 540 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 539 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/02/dailydogo.html" />
      <updated>2023-05-02T17:06:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 539 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4e9f2fd649.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 539 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          That is… a pretty...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/02/that-is-a.html" />
      <updated>2023-05-02T12:20:39Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/02/that-is-a.html</id>
      <content type="html">&lt;p&gt;That is… a pretty old MacBook by today&#39;s standards, right?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.apple.com/safari/&quot;&gt;From Apple&#39;s Safari page.&lt;/a&gt;&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/07b78da3c4.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        That is… a pretty old MacBook by today&#39;s standards, right? From Apple&#39;s Safari page.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 538 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/05/01/dailydogo.html" />
      <updated>2023-05-01T17:57:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/05/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 538 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/00aa8658c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 538 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 537 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/30/dailydogo.html" />
      <updated>2023-04-30T16:26:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 537 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8e75a91acb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 537 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 536 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/29/dailydogo.html" />
      <updated>2023-04-29T17:04:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 536 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f892452fe0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 536 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 535 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/28/dailydogo.html" />
      <updated>2023-04-28T18:12:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 535 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9dcc9e23ba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 535 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 534 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/27/dailydogo.html" />
      <updated>2023-04-27T16:56:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 534 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbe4aec6f7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 534 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s always...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/27/its-always-surprising.html" />
      <updated>2023-04-27T08:56:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/27/its-always-surprising.html</id>
      <content type="html">&lt;p&gt;It&#39;s always surprising to me, even though it shouldn&#39;t anymore: Pretty thorny coding project problem because a dependency update/runtime configuration conflict led to an edge case relatively deep in the stack. Tests that never failed, failed all of a sudden with unclear Errors, nobody in the team knew anything and even the internet was pretty unhelpful.&lt;/p&gt;
&lt;p&gt;Programming is a lesson in patience and perseverance sometimes.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s always surprising to me, even though it shouldn&#39;t anymore: Pretty thorny coding project problem because a dependency update/runtime configuration conflict led to an edge case relatively deep in the stack. Tests that never failed, failed all of a sudden with unclear Errors, nobody in the team knew anything and even the internet was pretty unhelpful. Programming is a lesson in patience and perseverance sometimes.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 533 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/26/dailydogo.html" />
      <updated>2023-04-26T16:01:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 533 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e65cb4bffc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 533 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously](/2023/0...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/26/on-the-one.html" />
      <updated>2023-04-26T12:49:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/26/on-the-one.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/02/17/im-more-and.html&quot;&gt;Previously&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On the one hand I&#39;m baffled that Apple Music doesn&#39;t have a dedicated &amp;quot;Rock&amp;quot; radio channel.&lt;/p&gt;
&lt;p&gt;On the other hand I have never listened to so much Country music in my life before coming back to Apple Music.&lt;/p&gt;
&lt;p&gt;Yeeha! 🤠&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously On the one hand I&#39;m baffled that Apple Music doesn&#39;t have a dedicated &amp;quot;Rock&amp;quot; radio channel. On the other hand I have never listened to so much Country music in my life before coming back to Apple Music. Yeeha! 🤠</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I am more and more...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/26/i-am-more.html" />
      <updated>2023-04-26T07:29:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/26/i-am-more.html</id>
      <content type="html">&lt;p&gt;I am more and more of the opinion that relying on semantic versioning conventions (e.g. using &lt;code&gt;&amp;quot;module&amp;quot;: &amp;quot;^1.2.3&amp;quot;,&lt;/code&gt; in your package.json) is a bad idea. A convention is not a guarantee. Something like &lt;a href=&quot;https://github.com/renovatebot/renovate&quot;&gt;Renovate&lt;/a&gt; is safer, especially in combination with a good test suite.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I am more and more of the opinion that relying on semantic versioning conventions (e.g. using &amp;quot;module&amp;quot;: &amp;quot;^1.2.3&amp;quot;, in your package.json) is a bad idea. A convention is not a guarantee. Something like Renovate is safer, especially in combination with a good test suite.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 532 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/25/dailydogo.html" />
      <updated>2023-04-25T16:17:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 532 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84c9d5f65d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 532 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Yesterday I tried to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/25/yesterday-i-tried.html" />
      <updated>2023-04-25T07:56:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/25/yesterday-i-tried.html</id>
      <content type="html">&lt;p&gt;Yesterday I tried to write three different blog posts about three different half baked ideas and published none. I aborted them one after another after being dissatisfied with their individual messages. Too much hot take, not enough general validity.&lt;/p&gt;
&lt;p&gt;I swear: Someday I will write a blog post again.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Yesterday I tried to write three different blog posts about three different half baked ideas and published none. I aborted them one after another after being dissatisfied with their individual messages. Too much hot take, not enough general validity. I swear: Someday I will write a blog post again.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Alt for today&#39;s...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/24/alt-for-todays.html" />
      <updated>2023-04-24T18:25:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/24/alt-for-todays.html</id>
      <content type="html">&lt;p&gt;Alt for today&#39;s DailyDogo (she has been such a good girl, with her mom on a business trip for three weeks and whatnot…)&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7c0c0e6258.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Alt for today&#39;s DailyDogo (she has been such a good girl, with her mom on a business trip for three weeks and whatnot…) #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 531 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/24/dailydogo.html" />
      <updated>2023-04-24T18:20:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 531 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/005d5c27d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 531 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 530 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/23/dailydogo.html" />
      <updated>2023-04-23T17:27:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 530 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/768fe39038.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 530 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 529 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/22/dailydogo.html" />
      <updated>2023-04-22T19:07:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 529 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ad38a971b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 529 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (I&#39;m also...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/22/im-also-immediately.html" />
      <updated>2023-04-22T11:58:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/22/im-also-immediately.html</id>
      <content type="html">&lt;p&gt;(I&#39;m also immediately put off by any app/piece of code calling itself &amp;quot;blazing(ly) fast&amp;quot;.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (I&#39;m also immediately put off by any app/piece of code calling itself &amp;quot;blazing(ly) fast&amp;quot;.)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (So looking forward...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/22/so-looking-forward.html" />
      <updated>2023-04-22T11:55:01Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/22/so-looking-forward.html</id>
      <content type="html">&lt;p&gt;(So looking forward to Ivory on the Mac.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (So looking forward to Ivory on the Mac.)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 528 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/21/dailydogo.html" />
      <updated>2023-04-21T18:06:25Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 528 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9b1b4bc1a7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 528 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          One of the best...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/21/one-of-the.html" />
      <updated>2023-04-21T16:31:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/21/one-of-the.html</id>
      <content type="html">&lt;p&gt;One of the best things I&#39;ve done recently in terms of emotional hygiene is giving myself a time limit of ten minutes every day on Instagram through Screen Time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        One of the best things I&#39;ve done recently in terms of emotional hygiene is giving myself a time limit of ten minutes every day on Instagram through Screen Time.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          There must really be...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/21/there-must-really.html" />
      <updated>2023-04-21T12:53:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/21/there-must-really.html</id>
      <content type="html">&lt;p&gt;There must really be some compelling evidence that changing your visual corporate identity is worthwhile. I just don&#39;t know about it.&lt;/p&gt;
&lt;p&gt;(Context: 1Password changed their brand: &lt;a href=&quot;https://1password.social/@1password/110233053098985719&quot;&gt;1password.social/@1passwor...&lt;/a&gt;)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        There must really be some compelling evidence that changing your visual corporate identity is worthwhile. I just don&#39;t know about it. (Context: 1Password changed their brand: 1password.social/@1passwor...)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Today especially the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/20/today-especially-the.html" />
      <updated>2023-04-20T19:54:59Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/20/today-especially-the.html</id>
      <content type="html">&lt;p&gt;Today especially the afternoon walk with the dog was memorable: We saw Napu&#39;s friend Obi out of pure chance! We had already walked long by that point, but she was totally ready to take an extra round with him around the block.&lt;/p&gt;
&lt;p&gt;At work some pretty intense code review sessions, where I was the reviewer. I can tell that I&#39;m getting better at this.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Today especially the afternoon walk with the dog was memorable: We saw Napu&#39;s friend Obi out of pure chance! We had already walked long by that point, but she was totally ready to take an extra round with him around the block. At work some pretty intense code review sessions, where I was the reviewer. I can tell that I&#39;m getting better at this.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 527 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/20/dailydogo.html" />
      <updated>2023-04-20T17:13:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 527 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9571c0690f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 527 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Survived the day...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/19/survived-the-day.html" />
      <updated>2023-04-19T20:54:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/19/survived-the-day.html</id>
      <content type="html">&lt;p&gt;Survived the day pretty well, all things considered. Dentist appointment showed no holes in my teeth, exterminator came and went, Napu and me went for a nice 5km walk in a national park around here. I played around with my new steam deck. Talked to my business tripping partner on the phone for a couple of hours. Lots of stuff out of the ordinary for a Wednesday, not enough sleep the night before. I can still feel a low humming of anxiety in the body.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b0985f6fdc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1daf4615a8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Survived the day pretty well, all things considered. Dentist appointment showed no holes in my teeth, exterminator came and went, Napu and me went for a nice 5km walk in a national park around here. I played around with my new steam deck. Talked to my business tripping partner on the phone for a couple of hours. Lots of stuff out of the ordinary for a Wednesday, not enough sleep the night before. I can still feel a low humming of anxiety in the body.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 526 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/19/dailydogo.html" />
      <updated>2023-04-19T18:12:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 526 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e3a210e0ce.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 526 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 525 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/18/dailydogo.html" />
      <updated>2023-04-18T20:17:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 525 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5abbb6e847.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 525 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 524 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/17/dailydogo.html" />
      <updated>2023-04-17T17:22:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 524 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/350887ed5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 524 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          We&#39;ll have an...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/17/well-have-an.html" />
      <updated>2023-04-17T08:15:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/17/well-have-an.html</id>
      <content type="html">&lt;p&gt;We&#39;ll have an exterminator over on Wednesday for a silver fish and paper fish situation in the building and our apartment. Feeling anxious. Everything has to be cleaned and moved 15-30 cm from the walls. The next three days are going to be stressful.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        We&#39;ll have an exterminator over on Wednesday for a silver fish and paper fish situation in the building and our apartment. Feeling anxious. Everything has to be cleaned and moved 15-30 cm from the walls. The next three days are going to be stressful.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My Partner is on a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/16/my-partner-is.html" />
      <updated>2023-04-16T20:31:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/16/my-partner-is.html</id>
      <content type="html">&lt;p&gt;My Partner is on a business trip in Germany for three weeks. Napu and me are holding the fort at home here in Kuusamo, waiting for mom/E. to come home.&lt;/p&gt;
&lt;p&gt;I&#39;m proud of and happy for my partner. She has gotten a great opportunity to widen her horizon and went for it bravely. ❤️&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a8002bd3db.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        My Partner is on a business trip in Germany for three weeks. Napu and me are holding the fort at home here in Kuusamo, waiting for mom/E. to come home. I&#39;m proud of and happy for my partner. She has gotten a great opportunity to widen her horizon and went for it bravely. ❤️</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 523 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/16/dailydogo.html" />
      <updated>2023-04-16T19:13:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 523 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b8154daec6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 523 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 522 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/15/dailydogo.html" />
      <updated>2023-04-15T16:25:40Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 522 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/581099e756.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 522 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 521 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/14/dailydogo.html" />
      <updated>2023-04-14T20:21:37Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 521 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f0b7211faa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 521 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          We&#39;re not eating...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/14/were-not-eating.html" />
      <updated>2023-04-14T17:19:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/14/were-not-eating.html</id>
      <content type="html">&lt;p&gt;We&#39;re not eating this because it is tasty, we&#39;re eating this because we need space in the fridge!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        We&#39;re not eating this because it is tasty, we&#39;re eating this because we need space in the fridge!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 520 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/13/dailydogo.html" />
      <updated>2023-04-13T17:53:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 520 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/29e13ecc38.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fbed063015.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 520 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Wow. Hug your dogs....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/13/wow-hug-your.html" />
      <updated>2023-04-13T13:34:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/13/wow-hug-your.html</id>
      <content type="html">&lt;p&gt;Wow. Hug your dogs. And your (other) loved ones. &lt;a href=&quot;https://www.youtube.com/watch?v=AKuVG58Xskc&quot;&gt;www.youtube.com/watch&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Wow. Hug your dogs. And your (other) loved ones. www.youtube.com/watch</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 519 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/12/dailydogo.html" />
      <updated>2023-04-12T16:47:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 519 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1041998fdb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 519 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 518 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/11/dailydogo.html" />
      <updated>2023-04-11T16:11:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 518 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1c89bea646.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 518 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 517 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/10/dailydogo.html" />
      <updated>2023-04-10T16:56:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 517 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ed8db1def5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 517 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          This year I may skip...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/10/this-year-i.html" />
      <updated>2023-04-10T12:45:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/10/this-year-i.html</id>
      <content type="html">&lt;p&gt;This year I may skip buying mlb.tv and will only watch the occasional &amp;quot;free game of the day&amp;quot; to save some money.&lt;/p&gt;
&lt;p&gt;I&#39;ll miss Kruk and Kuip, but it&#39;s kinda interesting seeing different commentators work different teams&#39; games.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        This year I may skip buying mlb.tv and will only watch the occasional &amp;quot;free game of the day&amp;quot; to save some money. I&#39;ll miss Kruk and Kuip, but it&#39;s kinda interesting seeing different commentators work different teams&#39; games.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Late breakfast...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/10/late-breakfast-today.html" />
      <updated>2023-04-10T08:53:40Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/10/late-breakfast-today.html</id>
      <content type="html">&lt;p&gt;Late breakfast today. It&#39;s almost 12.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Late breakfast today. It&#39;s almost 12.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 516 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/09/dailydogo.html" />
      <updated>2023-04-09T16:26:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 516 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f7d1cd9f4b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 516 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 515 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/08/dailydogo.html" />
      <updated>2023-04-08T16:05:08Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 515 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/69804f3031.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 515 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Drinking coffee on...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/08/drinking-coffee-on.html" />
      <updated>2023-04-08T13:39:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/08/drinking-coffee-on.html</id>
      <content type="html">&lt;p&gt;Drinking coffee on the balcony, eating easter sweets sent from Germany by my mom. 😊&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Drinking coffee on the balcony, eating easter sweets sent from Germany by my mom. 😊</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 514 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/07/dailydogo.html" />
      <updated>2023-04-07T17:05:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 514 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b6b5ce3e9e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 514 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 513 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/06/dailydogo.html" />
      <updated>2023-04-06T18:31:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 513 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b15d22a283.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 513 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 512 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/05/dailydogo.html" />
      <updated>2023-04-05T16:06:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 512 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1b6d359554.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 512 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          There is no real...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/05/there-is-no.html" />
      <updated>2023-04-05T10:46:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/05/there-is-no.html</id>
      <content type="html">&lt;p&gt;There is no real reason for this, but I feel anxious somehow. Doesn&#39;t happen that often. Thank god.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        There is no real reason for this, but I feel anxious somehow. Doesn&#39;t happen that often. Thank god.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 511 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/04/dailydogo.html" />
      <updated>2023-04-04T18:16:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 511 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3eeeef48d0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 511 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          LLMs Usefulness As A Tool Is Not What Makes Them Morally Ambigous



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/04/llms-usefulness-as.html" />
      <updated>2023-04-04T13:38:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/04/llms-usefulness-as.html</id>
      <content type="html">&lt;p&gt;What I do get: I get that LLMs are not real AI and fantasizing about LLMs being sentient is foolish. LLMs are also morally ambiguous technology, no question. However, there is a certain skeptical bend towards the usefulness of LLMs that rubs me the wrong way, especially when it gets mixed up with the - absolutely important - issue of moral questions concerning the training of models using copyrighted materials.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mattgemmell.com/authorship/&quot;&gt;Matt Gemmel&#39;s post &amp;quot;Autorship&amp;quot;&lt;/a&gt; seems to me to be an example of this. He takes exception to the fact that things that have been created using LLMs are &amp;quot;automated plagiarism&amp;quot; and people using words like &amp;quot;created&amp;quot; as regards to using LLMs ought to know that they in fact have not created anything, really, and that they are lying if they claim otherwise.&lt;/p&gt;
&lt;p&gt;I don&#39;t know. Matt does not differentiate between the concept of LLMs - which very well could be imagined as a morally sound technology (excluding &lt;a href=&quot;https://limited.systems/articles/climate-cost-of-ai-revolution/&quot;&gt;the horrible climate impact&lt;/a&gt; of LLMs, for the purposes of the argument…) - and the actual flawed instances of LLMs in the wild, right now. I believe that appropriate legislation would indeed slow the &amp;quot;AI revolution&amp;quot; down quite a bit, but I also think that we have passed a threshold, which makes it imperative to imagine an ethical version of LLMs (et. al.) and advocate for it.&lt;/p&gt;
&lt;p&gt;Therefore I would like to maybe suggest that a ChatGPT-like LLM assistant can indeed be super useful for all kinds of tasks of knowledge workers. It is a mighty &lt;em&gt;tool&lt;/em&gt; indeed. A mighty tool means taking on responsibility, too: I ought to be knowing what it is I&#39;m doing. This is true for simple tools like a hammer, and increasingly more complex ones like a chainsaw or - changing categories here - a printing press, a personal computer and so on. LLM assistants are no different. Also it takes some skill to work with such an assistant to make it do what I want it to do. All of this is on the &amp;quot;this-wordly&amp;quot; (is that the right word?) side of tool use. It seems natural that tools would assist and extend our capabilities and that LLMs aren&#39;t an exception to that.&lt;/p&gt;
&lt;p&gt;When talking about LLMs as tools we can make an argument about craftsmanship, I guess. Using simple tools by a skilled person can indeed feel great for that skilled person (from what I hear and read). &amp;quot;I feel a connection to the wood&amp;quot; and so on. A carpenter does not use the same tools as a furniture factory. But does this mean a furniture factory is not creating furniture? I&#39;m also not so sure that &amp;quot;carpenter&amp;quot;/&amp;quot;factory&amp;quot; is to &amp;quot;furniture&amp;quot; what &amp;quot;knowledge worker without LLMs&amp;quot;/&amp;quot;knowledge worker with LLMs&amp;quot; is to &amp;quot;content&amp;quot; - I mean this in the sense of &amp;quot;using an LLM is maybe more like using a veneer press than an IKEA factory to create furniture&amp;quot;.&lt;/p&gt;
&lt;p&gt;(I also feel it is very important to point out that engaging with the material in front of me &lt;em&gt;actually&lt;/em&gt; makes all the difference and not what tools I use (they can enhance my engagement, but everything hinges on my engagement). In that sense it is related to &lt;a href=&quot;https://blog.martin-haehnel.de/2023/04/02/tools-make-knowledge.html&quot;&gt;my recent post&lt;/a&gt; about using PKM systems and if they are needed or not. But my argument here is not really about this…)&lt;/p&gt;
&lt;p&gt;In short: Separating the (pressing!) moral questions from LLMs as tools and their use seems important, because in order to make a real balanced argument for or against LLMs, I need to argue from a position that acknowledges the usefulness felt by its users (and that are, if you ask me, real). We can and should (must, really…) also talk about copyright issues and climate impact and whatever else is questionable about LLMs, but a holier-than-thou position won&#39;t lead anywhere progressive either, in fact instead of talking about these issues I spent all of this post arguing against the blending of these separate points instead.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        LLMs Usefulness As A Tool Is Not What Makes Them Morally Ambigous

        https://blog.martin-haehnel.de/2023/04/04/llms-usefulness-as.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 510 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/03/dailydogo.html" />
      <updated>2023-04-03T16:48:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 510 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4a7cb66415.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 510 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          &gt;The style is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/03/the-style-is.html" />
      <updated>2023-04-03T11:08:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/03/the-style-is.html</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;The style is different, fewer Vogue cover stories[...]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Wow.  This is a Finish professor of world politics &lt;a href=&quot;https://yle.fi/a/74-20025571&quot;&gt;commenting&lt;/a&gt; on the outgoing prime minister Sanna Marin (the question was about the different styles of leadership).&lt;/p&gt;
&lt;p&gt;P.S.: I acknowledge the fact that it was very early in the morning and the prof is not a native speaker, but: casual sexism much?! And how is it that the national broadcaster Yle just lets this sit there, uncommented, but edited for clarity when compared to the podcast episode?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The style is different, fewer Vogue cover stories[...] Wow. This is a Finish professor of world politics commenting on the outgoing prime minister Sanna Marin (the question was about the different styles of leadership). P.S.: I acknowledge the fact that it was very early in the morning and the prof is not a native speaker, but: casual sexism much?! And how is it that the national broadcaster Yle just lets this sit there, uncommented, but edited for clarity when compared to the podcast episode?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Uff. Finland just...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/03/uff-finland-just.html" />
      <updated>2023-04-03T05:38:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/03/uff-finland-just.html</id>
      <content type="html">&lt;p&gt;Uff. Finland just became way more right wing. Sanna Marin was not re-elected. Her social democrats finished in third place. In front of them: A moderate and an extremist right wing party. 🤬&lt;/p&gt;
&lt;p&gt;EDIT: And the extremist right-wing Finns party was the one most voted for in my area (greater Oulu region)…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Uff. Finland just became way more right wing. Sanna Marin was not re-elected. Her social democrats finished in third place. In front of them: A moderate and an extremist right wing party. 🤬 EDIT: And the extremist right-wing Finns party was the one most voted for in my area (greater Oulu region)…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 509 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/02/dailydogo.html" />
      <updated>2023-04-02T17:03:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 509 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b674b0238c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 509 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Tools Make Knowledge



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/02/tools-make-knowledge.html" />
      <updated>2023-04-02T16:58:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/02/tools-make-knowledge.html</id>
      <content type="html">&lt;blockquote class=&quot;quoteback&quot; data-title=&quot;&quot; data-author=&quot;Eric Gregorich&quot; data-avatar=&quot;https://micro.blog/ericgregorich/avatar.jpg&quot; cite=&quot;https://ericgregorich.com/2023/04/02/heyscottyj-no-pkm.html&quot;&gt;&lt;p&gt;&lt;a href=&quot;https://heyscottyj.com/2023/02/13/no-pkm-necessary.html&quot; title=&quot;No PKM Necessary&quot;&gt;HeyScottyJ - No PKM necessary&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The concept of Personal Knowledge Management (PKM) is flawed in that it fails to recognize that there is more to knowledge management than simply collecting, storing, and organizing data. Rather, knowledge management is a process of transforming data into information and then into knowledge through the application of cognitive processes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While PKM tools can be helpful in collecting, organizing, and connecting the information you gather, it is up to you to do something with that information to turn it into knowledge.&lt;/p&gt;
&lt;footer&gt;Eric Gregorich &lt;cite&gt;&lt;a href=&quot;https://ericgregorich.com/2023/04/02/heyscottyj-no-pkm.html&quot; class=&quot;u-in-reply-to&quot;&gt;https://ericgregorich.com/2023/04/02/heyscottyj-no-pkm.html&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://micro.blog/quoteback.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;I agree with Eric&#39;s point - &lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/21/an-interesting-difference.html&quot;&gt;and have made a similar one recently&lt;/a&gt; - just gathering and organizing information is not knowledge.&lt;/p&gt;
&lt;p&gt;However, I feel that Scotty seems to throw out the baby with the bath water: Just because PKM tools are limited doesn&#39;t mean that they are useless. Many people (like me) want or indeed &lt;em&gt;need&lt;/em&gt;  &lt;a href=&quot;https://notes.andymatuschak.org/z5WDNZizsbAzE1p2BLwr339fV4TCpzNvaztP2&quot;&gt;a writing surface to think&lt;/a&gt;. Finding a good writing surface makes a real difference and PKM tools can be an incredible writing surface.&lt;/p&gt;
&lt;p&gt;Does this make them &amp;quot;necessary&amp;quot; for PKM? First, what actually is a PKM tool? A notebook? A piece of paper? An index card? A word document? The current crop of fancy note taking tools like Obsidian et. al. are mostly more sophisticated versions of simpler PKM tools that came before them. So I&#39;d say if we just talk about &amp;quot;tools that help turn data into information and in turn into knowledge&amp;quot; (obviously not on their own, I&#39;ll have to engage with the stuff in front of me) then, I&#39;d say, they are indeed needed. If it is about the more sophisticated variants that have become popular over the last few years, then I think the question can be answered with a &amp;quot;no, but&amp;quot;. The &amp;quot;but&amp;quot; part here would make an argument about convenience but also elaborative power.&lt;/p&gt;
&lt;p&gt;It can be very convenient to use a modern tool like Obsidian and although not strictly neccessary, working with it is just very &lt;em&gt;nice&lt;/em&gt;. As is using an iPhone (in my experience) or a sharp knife. Having a nice tool, makes me want to use the tool more, therefore engaging me with what I have gathered before, which in turn makes it more likely that I&#39;ll acquire knowledge in the process.&lt;/p&gt;
&lt;p&gt;More sophisticated PKM tools have, generally speaking, more elaborative power. If I can view and connect an idea in many different ways with ease, I am engaging with the information at hand, making it more easily retrievable. In other words these actions make it more likely I learn how it fits with other things I know already. This is what learning is: trying to understand, trying to get at the ideas behind the information and finding a &amp;quot;fit&amp;quot; within the greater universe of concepts and ideas I already know. If I have a tool, that makes the grunt work easier - like creating links, making my notes portable and so on - I can actually focus &lt;em&gt;more&lt;/em&gt; on engaging with the interesting things I have collected. That&#39;s a good thing.&lt;/p&gt;
&lt;p&gt;I&#39;m also not sure that the PKM concept itself is not recognizing the importance of actually engaging with my data, as is claimed. I believe that people are aware. I for example was not surprised that PKM should do more than &amp;quot;just&amp;quot; organize data (but was surprised that Scott would think knowledge workers that have heard of PKM aren&#39;t in the know) . I still think that there is a good point in here, that got buried though: No matter the sophistication of the tools used to engage with gathered information: I&#39;ll have to do the leg work, which is what Eric took from it (and what I agree with).&lt;/p&gt;
&lt;p&gt;In short: Sure, knowledge work doesn&#39;t &lt;em&gt;need&lt;/em&gt; sophisticated PKM tools, but it is tools that make knowledge, so I find it a little reductive to call a concept &amp;quot;flawed&amp;quot; and tools associated with it &amp;quot;unneccessary&amp;quot;, especially if it has lots of things to recommend itself.&lt;/p&gt;
&lt;p&gt;P.S.: I would be on board with calling hype cycles around new technologies like &amp;quot;more sophsticated PKM tools&amp;quot; (or &amp;quot;LLMs&amp;quot; more recently) annoying, but these tools (both of them, actually) are not useless and shouldn&#39;t therefore be so easily dismissed.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Tools Make Knowledge

        https://blog.martin-haehnel.de/2023/04/02/tools-make-knowledge.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Actually impressed...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/02/actually-impressed-by.html" />
      <updated>2023-04-02T14:11:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/02/actually-impressed-by.html</id>
      <content type="html">&lt;p&gt;Actually impressed by &lt;a href=&quot;https://www.looria.com/bot/BuyItForLife&quot;&gt;ChatGPT bot for BuyItForLife&lt;/a&gt;. This is a GPT-like(?) bot that has been trained on reddit&#39;s &amp;quot;Buy it for life&amp;quot; subreddit for tools and gear that are high quality and long lasting. I&#39;m no expert, and this surely has a US bend, but pretty good results overall!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Actually impressed by ChatGPT bot for BuyItForLife. This is a GPT-like(?) bot that has been trained on reddit&#39;s &amp;quot;Buy it for life&amp;quot; subreddit for tools and gear that are high quality and long lasting. I&#39;m no expert, and this surely has a US bend, but pretty good results overall!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 508 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/04/01/dailydogo.html" />
      <updated>2023-04-01T16:07:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/04/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 508 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6b309b9cc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 508 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          PuppyCast 028 🐶🎙



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/31/puppycast.html" />
      <updated>2023-03-31T16:53:21Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/31/puppycast.html</id>
      <content type="html">&lt;p&gt;What?! A new puppy cast?! Only to test out the new transcription feature (and plug-in). 😉&lt;/p&gt;
&lt;audio controls=&quot;controls&quot; src=&quot;https://blog.martin-haehnel.de/uploads/2023/f285c6c00a.m4a&quot; preload=&quot;metadata&quot;&gt;
&lt;/audio&gt;</content>
      
      <echofeed:content type="html">
        PuppyCast 028 🐶🎙

        https://blog.martin-haehnel.de/2023/03/31/puppycast.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Finished working...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/31/finished-working-late.html" />
      <updated>2023-03-31T16:43:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/31/finished-working-late.html</id>
      <content type="html">&lt;p&gt;Finished working late today but only because I interrupted working for a bit  so that my partner and I could go out for an early dinner to a nearby restaurant! 🤩 (Napu had to wait for us at home. It&#39;s good training against separation anxiety).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Finished working late today but only because I interrupted working for a bit so that my partner and I could go out for an early dinner to a nearby restaurant! 🤩 (Napu had to wait for us at home. It&#39;s good training against separation anxiety).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 507 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/31/dailydogo.html" />
      <updated>2023-03-31T16:40:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 507 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ce6b0b817a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 507 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I guess I like...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/31/i-guess-i.html" />
      <updated>2023-03-31T08:08:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/31/i-guess-i.html</id>
      <content type="html">&lt;p&gt;I guess I like programming?!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I guess I like programming?!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 506 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/30/dailydogo.html" />
      <updated>2023-03-30T18:38:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 506 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f4a11baa4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 506 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 505 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/29/dailydogo.html" />
      <updated>2023-03-29T17:38:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 505 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/69a92cee97.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 505 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I very innocently...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/29/i-very-innocently.html" />
      <updated>2023-03-29T07:43:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/29/i-very-innocently.html</id>
      <content type="html">&lt;p&gt;I very innocently tried to diagram my current gtd-like workflow in Mindnode and after a couple of hours(!) realized that this thing is so complex that it doesn&#39;t fit into a tree-like structure anymore… 🙈&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I very innocently tried to diagram my current gtd-like workflow in Mindnode and after a couple of hours(!) realized that this thing is so complex that it doesn&#39;t fit into a tree-like structure anymore… 🙈</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Does anybody know...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/29/does-anybody-know.html" />
      <updated>2023-03-29T06:27:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/29/does-anybody-know.html</id>
      <content type="html">&lt;p&gt;Does anybody know about environmentally conscious work done in the world of &amp;quot;AI&amp;quot;?&lt;/p&gt;
&lt;p&gt;I feel like I read a lot about &amp;quot;it&#39;s expensive and hardware needs to be more readily available&amp;quot;, but is there work done, to make these things more sustainable?&lt;/p&gt;
&lt;p&gt;It&#39;s part of critiques for sure, but otherwise absent.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Does anybody know about environmentally conscious work done in the world of &amp;quot;AI&amp;quot;? I feel like I read a lot about &amp;quot;it&#39;s expensive and hardware needs to be more readily available&amp;quot;, but is there work done, to make these things more sustainable? It&#39;s part of critiques for sure, but otherwise absent.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 506 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/28/dailydogo.html" />
      <updated>2023-03-28T16:25:13Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 506 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/895c4bd2de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 506 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Newsletter writers:...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/28/newsletter-writers-apart.html" />
      <updated>2023-03-28T13:56:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/28/newsletter-writers-apart.html</id>
      <content type="html">&lt;p&gt;Newsletter writers: Apart from an &amp;quot;unsubscribe&amp;quot; link, please also offer a &amp;quot;change email&amp;quot; link.&lt;/p&gt;
&lt;p&gt;Seems like an easy thing, but is very seldomly found.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Newsletter writers: Apart from an &amp;quot;unsubscribe&amp;quot; link, please also offer a &amp;quot;change email&amp;quot; link. Seems like an easy thing, but is very seldomly found.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Turning the clocks...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/28/turning-the-clocks.html" />
      <updated>2023-03-28T05:03:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/28/turning-the-clocks.html</id>
      <content type="html">&lt;p&gt;Turning the clocks back has so far destroyed me three mornings in a row.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Turning the clocks back has so far destroyed me three mornings in a row.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 505 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/27/dailydogo.html" />
      <updated>2023-03-27T16:04:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 505 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/19dfbff3f5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 505 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 504 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/26/dailydogo.html" />
      <updated>2023-03-26T18:21:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 504 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bb48989297.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 504 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Two unremarkable...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/26/two-unremarkable-days.html" />
      <updated>2023-03-26T17:34:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/26/two-unremarkable-days.html</id>
      <content type="html">&lt;p&gt;Two unremarkable days this weekend. I enjoyed them very much. Now waiting for the Sauna to heat while I prepare tortillas.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Two unremarkable days this weekend. I enjoyed them very much. Now waiting for the Sauna to heat while I prepare tortillas.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 503 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/25/dailydogo.html" />
      <updated>2023-03-25T17:01:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 503 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/93279bec86.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 503 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Just finished 911...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/25/just-finished-lonestar.html" />
      <updated>2023-03-25T13:30:35Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/25/just-finished-lonestar.html</id>
      <content type="html">&lt;p&gt;Just finished 911 lonestar season 3. All in all a very good (pretty long!) season. I love the modern, progressive tone, the optimism, the altruism on display.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Just finished 911 lonestar season 3. All in all a very good (pretty long!) season. I love the modern, progressive tone, the optimism, the altruism on display.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 502 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/24/dailydogo.html" />
      <updated>2023-03-24T19:17:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 502 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5d1a73af71.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 502 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;m unhappy to note...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/24/im-unhappy-to.html" />
      <updated>2023-03-24T14:55:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/24/im-unhappy-to.html</id>
      <content type="html">&lt;p&gt;I&#39;m unhappy to note that JavaScript tooling has stayed just as opaque as last time I had to use it professionally.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;m unhappy to note that JavaScript tooling has stayed just as opaque as last time I had to use it professionally.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Turns out: solving...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/24/turns-out-solving.html" />
      <updated>2023-03-24T11:58:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/24/turns-out-solving.html</id>
      <content type="html">&lt;p&gt;Turns out: solving hard problems under time pressure is hard. Who knew! 🤪&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Turns out: solving hard problems under time pressure is hard. Who knew! 🤪</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 501 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/23/dailydogo.html" />
      <updated>2023-03-23T19:30:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 501 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abba56d282.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 501 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I, as a non native...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/23/i-as-a.html" />
      <updated>2023-03-23T10:02:12Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/23/i-as-a.html</id>
      <content type="html">&lt;p&gt;I, as a non native writer (and an error prone one in general), so wish mb would sync edits between my blog and my mastodon account.  cc: &lt;a href=&quot;https://micro.blog/manton&quot;&gt;@manton&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I, as a non native writer (and an error prone one in general), so wish mb would sync edits between my blog and my mastodon account. cc: @manton</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good to see that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/23/good-to-see.html" />
      <updated>2023-03-23T08:44:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/23/good-to-see.html</id>
      <content type="html">&lt;p&gt;Good to see that state management in SPAs is still hard since the last time (3,5 years ago) I used one of these frame works. This time it&#39;s vue3 last time it was react.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Good to see that state management in SPAs is still hard since the last time (3,5 years ago) I used one of these frame works. This time it&#39;s vue3 last time it was react.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 500 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/22/dailydogo.html" />
      <updated>2023-03-22T19:16:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 500 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2e98ddaef.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 500 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The long afternoon...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/21/the-long-afternoon.html" />
      <updated>2023-03-21T18:00:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/21/the-long-afternoon.html</id>
      <content type="html">&lt;p&gt;The long afternoon walk with the dog made me incredibly tired today.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The long afternoon walk with the dog made me incredibly tired today.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 499 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/21/dailydogo.html" />
      <updated>2023-03-21T17:11:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 499 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/283f42e226.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 499 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously](/2023/0...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/21/an-interesting-difference.html" />
      <updated>2023-03-21T11:33:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/21/an-interesting-difference.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/19/as-somebody-who.html&quot;&gt;Previously&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;An interesting difference that just occurred to me: Knowledge management and idea generation are not the same things. They are related, but a note system and its user may have to decide if they&#39;re building an archive or if they&#39;re building an idea generator. I&#39;d say the latter is &lt;em&gt;much&lt;/em&gt; more valuable for individuals.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously An interesting difference that just occurred to me: Knowledge management and idea generation are not the same things. They are related, but a note system and its user may have to decide if they&#39;re building an archive or if they&#39;re building an idea generator. I&#39;d say the latter is much more valuable for individuals.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously](/2022/1...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/21/readwise-reader-you.html" />
      <updated>2023-03-21T08:40:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/21/readwise-reader-you.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/18/i-dont-want.html&quot;&gt;Previously&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Readwise Reader... You were the chosen one! Their feed reader cannot handle daring fireball&#39;s feed. And it&#39;s a long standing issue. Great. I guess I&#39;ll have to take my feeds to a dedicated rss reader app once more?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously Readwise Reader... You were the chosen one! Their feed reader cannot handle daring fireball&#39;s feed. And it&#39;s a long standing issue. Great. I guess I&#39;ll have to take my feeds to a dedicated rss reader app once more?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 498 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/20/dailydogo.html" />
      <updated>2023-03-20T19:20:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 498 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bf4613ef55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 498 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 497 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/19/dailydogo.html" />
      <updated>2023-03-19T17:25:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 497 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aa3d9b6a9c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 497 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          As somebody who has...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/19/as-somebody-who.html" />
      <updated>2023-03-19T15:33:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/19/as-somebody-who.html</id>
      <content type="html">&lt;p&gt;As somebody who has taken notes for a long time now, I have gone through iterations of my setup to interact with them (last year &lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html&quot;&gt;I tried to use Agenda&lt;/a&gt; for my periodic and project notes, which I later abandoned in favor of &lt;a href=&quot;https://blog.martin-haehnel.de/2022/09/22/after-three-months.html&quot;&gt;using exclusively Obsidian again&lt;/a&gt;). In the process of moving from one app to the next it was not uncommon to leave notes behind. Not always did this happen intentionally. My current incarnation of my notes system consists of about 5000 notes, when I started to move from Evernote to Obsidian I left thousands of notes behind. If I&#39;d need to guess, a count of all of my notes ever written reaches probably around 100000. As I have a full-time job, a little family and little time, my current situation doesn&#39;t allow me to do work on my notes all the time.&lt;/p&gt;
&lt;p&gt;So I will probably never be able to collate, deduplicate and unify all my notes into my current system. But I have learned that this is really also not as important as one might think at first. I use my notes system as a way to think and generate new ideas. The argument for having a notes system like this continues usually this way: &amp;quot;…and the more ideas you have, the more you&#39;ll create/find…&amp;quot;. But I think more important than the total amount is to reach &lt;em&gt;a critical mass of notes&lt;/em&gt;, which seems to start for me around 50 or so. By this point I seem to be able to always find something to connect to something else. There is always something else to elaborate, so ideas are generated, which is exactly the goal of my system.&lt;/p&gt;
&lt;p&gt;I don&#39;t need all my 100000 notes to do it. These 50 notes also don&#39;t need to be perfect notes, or only capturing &amp;quot;atomic&amp;quot; ideas. Some are short reflexions, others are definitions, quotes, maybe a picture, a copy and pasted line of code. Often times they are daily notes that log what I have done that day with links to other notes. (See also: &lt;a href=&quot;https://blog.martin-haehnel.de/2022/07/18/the-three-types.html&quot;&gt;The three types of notes I take&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Heterogeneity and being in various states of completion are really not a problem, as long as there is enough of a critical mass in the system to generate new notes.&lt;/p&gt;
&lt;p&gt;EDIT: You may be interested in my little constellation of &amp;quot;Notes on Notes&amp;quot; about the process of working with a notes system:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/23/notes-on-notes.html&quot;&gt;Write Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/23/103518.html&quot;&gt;Connect Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/23/104912.html&quot;&gt;Why do it&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/23/110655.html&quot;&gt;Change&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/23/152840.html&quot;&gt;Increment by Increment&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/21/an-interesting-difference.html&quot;&gt;Forward&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        As somebody who has taken notes for a long time now, I have gone through iterations of my setup to interact with them (last year I tried to use Agenda for my periodic and project notes, which I later abandoned in favor of using exclusively Obsidian again). In the process of moving from one app to the next it was not uncommon to leave notes behind. Not always did this happen intentionally. My current incarnation of my notes system consists of about 5000 notes, when I started to move from Evernote to Obsidian I left thousands of notes behind. If I&#39;d need to guess, a count of all of my notes ever written reaches probably around 100000. As I have a full-time job, a little family and little time, my current situation doesn&#39;t allow me to do work on my notes all the time. So I will probably never be able to collate, deduplicate and unify all my notes into my current system. But I have learned that this is really also not as important as one might think at first. I use my notes system as a way to think and generate new ideas. The argument for having a notes system like this continues usually this way: &amp;quot;…and the more ideas you have, the more you&#39;ll create/find…&amp;quot;. But I think more important than the total amount is to reach a critical mass of notes, which seems to start for me around 50 or so. By this point I seem to be able to always find something to connect to something else. There is always something else to elaborate, so ideas are generated, which is exactly the goal of my system. I don&#39;t need all my 100000 notes to do it. These 50 notes also don&#39;t need to be perfect notes, or only capturing &amp;quot;atomic&amp;quot; ideas. Some are short reflexions, others are definitions, quotes, maybe a picture, a copy and pasted line of code. Often times they are daily notes that log what I have done that day with links to other notes. (See also: The three types of notes I take) Heterogeneity and being in various states of completion are really not a problem, as long as there is enough of a critical mass in the system to generate new notes. EDIT: You may be interested in my little constellation of &amp;quot;Notes on Notes&amp;quot; about the process of working with a notes system: Write Notes Connect Notes Why do it Change Increment by Increment Forward

        https://blog.martin-haehnel.de/2023/03/19/as-somebody-who.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Playing Stellaris...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/19/playing-stellaris-again.html" />
      <updated>2023-03-19T09:22:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/19/playing-stellaris-again.html</id>
      <content type="html">&lt;p&gt;Playing Stellaris again, which I do every time a new dlc comes out. The newest dlc is a &amp;quot;First Contact Story Pack&amp;quot; and I do love it a lot. Just a great game. &lt;a href=&quot;https://blog.martin-haehnel.de/2022/11/02/i-just-pledged.html&quot;&gt;I have played it hundreds of hours&lt;/a&gt; and am still enjoying the occasional round (which can take me upwards of 30 hours).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Playing Stellaris again, which I do every time a new dlc comes out. The newest dlc is a &amp;quot;First Contact Story Pack&amp;quot; and I do love it a lot. Just a great game. I have played it hundreds of hours and am still enjoying the occasional round (which can take me upwards of 30 hours).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 496 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/18/dailydogo.html" />
      <updated>2023-03-18T17:10:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 496 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8181a52b74.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 496 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I was (and am) so...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/18/i-was-and.html" />
      <updated>2023-03-18T09:59:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/18/i-was-and.html</id>
      <content type="html">&lt;p&gt;I was (and am) so enamored with an article I read that my sleep deprived self decided in the morning after walking and feeding the dog to take notes for three hours instead of going back to sleep. &lt;strong&gt;Now&lt;/strong&gt; I&#39;m exhausted.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I was (and am) so enamored with an article I read that my sleep deprived self decided in the morning after walking and feeding the dog to take notes for three hours instead of going back to sleep. Now I&#39;m exhausted.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 495 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/17/dailydogo.html" />
      <updated>2023-03-17T18:05:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 495 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1fdd4c3609.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 495 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Nothing better than...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/17/nothing-better-than.html" />
      <updated>2023-03-17T12:46:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/17/nothing-better-than.html</id>
      <content type="html">&lt;p&gt;Nothing better than tortilla leftovers for lunch. 😋&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Nothing better than tortilla leftovers for lunch. 😋</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 494 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/16/dailydogo.html" />
      <updated>2023-03-16T19:36:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 494 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dbf3bbcbcf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 494 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Peviously.](/2023/0...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/16/i-dont-know.html" />
      <updated>2023-03-16T15:51:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/16/i-dont-know.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/15/previously-im-not.html&quot;&gt;Peviously.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I don&#39;t know why, but I may have for the first time really understood how OmniFocus&#39; repeating event functionality works. Amazing how much complexity they managed to cram into this feature. I can actually express all my recurring tasks in my task manager. &lt;em&gt;But:&lt;/em&gt; It almost certainly means that I&#39;m stuck with OmniFocus, because no other app can do this.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/07/16/there-is-a.html&quot;&gt;Forward&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Peviously. I don&#39;t know why, but I may have for the first time really understood how OmniFocus&#39; repeating event functionality works. Amazing how much complexity they managed to cram into this feature. I can actually express all my recurring tasks in my task manager. But: It almost certainly means that I&#39;m stuck with OmniFocus, because no other app can do this. Forward</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Having learned about...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/16/having-learned-about.html" />
      <updated>2023-03-16T15:00:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/16/having-learned-about.html</id>
      <content type="html">&lt;p&gt;Having learned about &lt;a href=&quot;https://github.com/mastodon/mastodon/issues/4486&quot;&gt;mastodon&#39;s capabilities of being a ddos tool&lt;/a&gt;, I wonder: Are URL previews a dark pattern in itself?&lt;/p&gt;
&lt;p&gt;I feel like you could argue they are, because they may seriously mislead you (a preview could be tailored in a malicious way), scale badly in a federated context (in the naïve case as implemented by mastodon) and responsibility for the problem is not as easily attributed. Should I as the user feel responsible?&lt;/p&gt;
&lt;p&gt;It also shows that fundamental design decisions about software architecture are still very much a centralization problem. Or rather: They express the reality that somebody has to make a decision about these things. Having your own instance doesn&#39;t change a thing about that. If the protocol defines link previews in this way you have to follow suit in order to be compliant. No way around that.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Having learned about mastodon&#39;s capabilities of being a ddos tool, I wonder: Are URL previews a dark pattern in itself? I feel like you could argue they are, because they may seriously mislead you (a preview could be tailored in a malicious way), scale badly in a federated context (in the naïve case as implemented by mastodon) and responsibility for the problem is not as easily attributed. Should I as the user feel responsible? It also shows that fundamental design decisions about software architecture are still very much a centralization problem. Or rather: They express the reality that somebody has to make a decision about these things. Having your own instance doesn&#39;t change a thing about that. If the protocol defines link previews in this way you have to follow suit in order to be compliant. No way around that.

        https://blog.martin-haehnel.de/2023/03/16/having-learned-about.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Knock on wood:...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/16/knock-on-wood.html" />
      <updated>2023-03-16T10:19:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/16/knock-on-wood.html</id>
      <content type="html">&lt;p&gt;Knock on wood: Things in the old as well as the new company are solved. The job transition &lt;em&gt;ought&lt;/em&gt; to work out now. What a relief. Working remotely abroad has it&#39;s challenges. 😅&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Knock on wood: Things in the old as well as the new company are solved. The job transition ought to work out now. What a relief. Working remotely abroad has it&#39;s challenges. 😅</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 493 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/15/dailydogo.html" />
      <updated>2023-03-15T18:25:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 493 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/d2c133206e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 493 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My Current Thoughts On Therapy And Mental Health



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/15/my-current-thoughts.html" />
      <updated>2023-03-15T10:53:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/15/my-current-thoughts.html</id>
      <content type="html">&lt;blockquote&gt;
&lt;p&gt;Part of my depression is a degree of apathy; the more I can focus and get excited about something the more I feel I&#39;m on the right path. I do worry, however, that it&#39;s a mask and I&#39;m just distracting myself.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;And that&#39;s how I feel about all this in a wider context. Treatment and therapy don&#39;t magically make you a happy person. Instead, they mask the symptoms or provide better coping strategies, ways to head off the worst of it before it can take hold.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://colinwalker.blog/blog/?date=2023-03-15#p1&quot;&gt;Colin Walker.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As somebody who has had several mental health breakdowns and three therapists in my 20s (I&#39;m 36 now), my current perspective on therapy is that you create the world in which you&#39;re living in and therapy can give structure (and meds, if needed) towards creating a livable world, for you. Meaning that you are actually not just getting rid of yet another veil that makes you see things more clearly - or on the contrary putting another mask on to make you see things less clearly. Instead your world can&#39;t literaly be anything else than what you focus on. If you&#39;re focussing on being happy, coping and so on, chances are that your world &amp;quot;becomes&amp;quot; what you see.&lt;/p&gt;
&lt;p&gt;This is not as simple as just using willpower, however. Not least, because willpower is like a muscle and ego depletion is a real thing. It&#39;s also because depression can be thought of as an an active but independently acting agent in your consciousness: Deciding to want to focus on something else is important, but a mental illness wouldn&#39;t be called that, if you could &#39;just decide&#39; and stick to counteracting it.&lt;/p&gt;
&lt;p&gt;This is where therapy can be incredibly helpful: In my experience visiting with a therapist changes your environment, your habits, which is itself - not even taking into account their skill at treating you - an important step to creating lasting behavioral change. But therapists offer also structure on top of just existing in your environment. In my experience they offer a source of serendipity that makes it possible to reach break throughs, new frames of thinking, new ways of looking at things. By showing up and interacting with a therapist you&#39;re making a real effort to change what you believe to be the boundaries of your current situation. Yes, this can be in the form of recipe-like  coping strategies, but it can also just mean to interact with an expert on mental health. And that communication has a very high likelihood of being &lt;em&gt;surprising&lt;/em&gt; - which is so important to feel something, anything &lt;em&gt;else&lt;/em&gt; as regards to your current mental health.&lt;/p&gt;
&lt;p&gt;So in short: We are and our world is what we are focussing on. There is no trick here. Nothing is revealed or hidden by engaging differently with the world, instead it is just that: A different perspective, a different world. To make a sustained effort to change this perspective for good means to change the environment (because willpower alone won&#39;t cut it) and to being open to be surprised.&lt;/p&gt;
&lt;p&gt;Medicine can really help in some cases. But even then it&#39;s not guaranteed that your conscience is built to accommodate even one new way of perceiving the world that doesn&#39;t include your mental illness. People are different, they can and can&#39;t do different things. A goal for one person to be completely healed from depression might just simply not be in the cards for others. &lt;em&gt;However&lt;/em&gt;: Even temporary relief or a more manageable severity of symptoms might be totally worth the effort.&lt;/p&gt;
&lt;p&gt;Finally, there is no relief in thinking that you may never find relief and therefore doing nothing. I would like to say: Whole-ass the thing, but I don&#39;t mean it to say &amp;quot;don&#39;t do anything else&amp;quot;, I mean it in the sense that if you&#39;re doing therapy, take it seriously, treat is as a creative task. The task of reinventing your world.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My Current Thoughts On Therapy And Mental Health

        https://blog.martin-haehnel.de/2023/03/15/my-current-thoughts.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Decided to remove...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/15/decided-to-remove.html" />
      <updated>2023-03-15T09:21:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/15/decided-to-remove.html</id>
      <content type="html">&lt;p&gt;Decided to remove &lt;a href=&quot;https://blog.martin-haehnel.de/notes-on-notes/&quot;&gt;my notes on notes newsletter page&lt;/a&gt; from the navigation. I&#39;m not pursuing that project at the moment, so I don&#39;t want people to be disappointed if they subscribe and no newsletters are coming.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Decided to remove my notes on notes newsletter page from the navigation. I&#39;m not pursuing that project at the moment, so I don&#39;t want people to be disappointed if they subscribe and no newsletters are coming.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously.](/2023/...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/15/previously-im-not.html" />
      <updated>2023-03-15T09:04:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/15/previously-im-not.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/01/28/previously-short-followup.html&quot;&gt;Previously.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(I&#39;m not using teuxdeux anymore. And after a short liaison with Todoist, I&#39;m back with OmniFocus.)&lt;/p&gt;
&lt;p&gt;Reading &lt;a href=&quot;https://inside.omnifocus.com/blog/interleaved-forecast&quot;&gt;the old scripture on the forecast perspective&lt;/a&gt; makes it clear to me, that this was intended to be used as a way to tell how due dates and events on a calendar interact.&lt;/p&gt;
&lt;p&gt;It&#39;s true you can also show deferred tasks and use a forecast tag to surface tasks without a due date in this perspective, but that is just secondary functionality. And it shows.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/16/i-dont-know.html&quot;&gt;Forward.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously. (I&#39;m not using teuxdeux anymore. And after a short liaison with Todoist, I&#39;m back with OmniFocus.) Reading the old scripture on the forecast perspective makes it clear to me, that this was intended to be used as a way to tell how due dates and events on a calendar interact. It&#39;s true you can also show deferred tasks and use a forecast tag to surface tasks without a due date in this perspective, but that is just secondary functionality. And it shows. Forward.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 492 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/14/dailydogo.html" />
      <updated>2023-03-14T19:24:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 492 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d3bd57b53.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 492 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s a blessing in...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/14/its-a-blessing.html" />
      <updated>2023-03-14T16:41:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/14/its-a-blessing.html</id>
      <content type="html">&lt;p&gt;It&#39;s a blessing in disguise that I do not have a big podcast backlog anymore and so fall back to audiobooks when going on longer walks with the dog.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s a blessing in disguise that I do not have a big podcast backlog anymore and so fall back to audiobooks when going on longer walks with the dog.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Started to cry out...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/14/started-to-cry.html" />
      <updated>2023-03-14T09:51:42Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/14/started-to-cry.html</id>
      <content type="html">&lt;p&gt;Started to cry out of happiness after receiving a positive message as regards to my new job. The new employer and me we&#39;ll figure something out together. 🥹&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Started to cry out of happiness after receiving a positive message as regards to my new job. The new employer and me we&#39;ll figure something out together. 🥹</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Sprint review went...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/14/sprint-review-went.html" />
      <updated>2023-03-14T08:22:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/14/sprint-review-went.html</id>
      <content type="html">&lt;p&gt;Sprint review went &lt;em&gt;much&lt;/em&gt; better than expected.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Sprint review went much better than expected.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Overslept a little...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/14/overslept-a-little.html" />
      <updated>2023-03-14T06:35:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/14/overslept-a-little.html</id>
      <content type="html">&lt;p&gt;Overslept a little today. But hey:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;An iPhone Screenshot of an Apple health notification telling me I hit my sleep goal.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/93461ae94e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Overslept a little today. But hey:</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Watching 9-1-1...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/watching-lonestar-season.html" />
      <updated>2023-03-13T19:20:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/watching-lonestar-season.html</id>
      <content type="html">&lt;p&gt;Watching 9-1-1 Lonestar, Season 3.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Watching 9-1-1 Lonestar, Season 3.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 491 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/dailydogo.html" />
      <updated>2023-03-13T16:44:38Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 491 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5147b0795d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 491 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Didn&#39;t want to go...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/didnt-want-to.html" />
      <updated>2023-03-13T16:42:27Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/didnt-want-to.html</id>
      <content type="html">&lt;p&gt;Didn&#39;t want to go out for Napu&#39;s longer walk, but I never ever have regretted going after all.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A dog (Napu) is watching into the camera, while giving paw, giving the impression it is agreeing with the post&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6be2e85f71.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Didn&#39;t want to go out for Napu&#39;s longer walk, but I never ever have regretted going after all.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Uff. I&#39;m clearly not...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/uff-im-clearly.html" />
      <updated>2023-03-13T13:59:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/uff-im-clearly.html</id>
      <content type="html">&lt;p&gt;Uff. I&#39;m clearly not made to sustain existential dread. Hopefully things with the new job will now work out. I had to stand my ground a little and did not enjoy saying &amp;quot;No!&amp;quot; to my new employer.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Uff. I&#39;m clearly not made to sustain existential dread. Hopefully things with the new job will now work out. I had to stand my ground a little and did not enjoy saying &amp;quot;No!&amp;quot; to my new employer.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Trimmed Napu&#39;s nails...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/trimmed-napus-nails.html" />
      <updated>2023-03-13T11:22:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/trimmed-napus-nails.html</id>
      <content type="html">&lt;p&gt;Trimmed Napu&#39;s nails just now. Always an intense moment for the both of us. But with lots of little sausage pieces and lots of calm praise we managed to pull through. 🐶😊&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A dog (Napu) is looking at the camera, somewhat unsure. In the corner of the image a pair of scissors and a nail cutter are visible.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8edaae4b91.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Trimmed Napu&#39;s nails just now. Always an intense moment for the both of us. But with lots of little sausage pieces and lots of calm praise we managed to pull through. 🐶😊</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Updated my [about...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/updated-my-about.html" />
      <updated>2023-03-13T10:11:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/updated-my-about.html</id>
      <content type="html">&lt;p&gt;Updated my &lt;a href=&quot;https://blog.martin-haehnel.de/about/&quot;&gt;about page&lt;/a&gt; and added some info for people unfamiliar with micro.blog. I also added some info on how to reach me and added a couple of plugins from &lt;a href=&quot;https://micro.blog/sod&quot;&gt;@sod&lt;/a&gt; to that effect:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/svendahlstrand/plugin-conversation-on-mb&quot;&gt;Conversation on Micro.blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/svendahlstrand/plugin-reply-by-email&quot;&gt;Reply by email for Micro.blog&lt;/a&gt; - this one uses email forwarding from omg.lol!&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Updated my about page and added some info for people unfamiliar with micro.blog. I also added some info on how to reach me and added a couple of plugins from @sod to that effect: Conversation on Micro.blog Reply by email for Micro.blog - this one uses email forwarding from omg.lol!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Don&#39;t want to jinx...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/13/dont-want-to.html" />
      <updated>2023-03-13T08:18:47Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/13/dont-want-to.html</id>
      <content type="html">&lt;p&gt;Don&#39;t want to jinx it but... (famous last words) I&#39;ve had a good start to the work week so far and am even using my task manager to get the right things done. 💪&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Don&#39;t want to jinx it but... (famous last words) I&#39;ve had a good start to the work week so far and am even using my task manager to get the right things done. 💪</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Dinner was a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/12/dinner-was-a.html" />
      <updated>2023-03-12T21:24:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/12/dinner-was-a.html</id>
      <content type="html">&lt;p&gt;Dinner was a success, albeit too late. Now (or rather 30 min ago) off to sauna. Having a good calm time over here. 🧖‍♂️&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Dinner was a success, albeit too late. Now (or rather 30 min ago) off to sauna. Having a good calm time over here. 🧖‍♂️</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Today&#39;s dinner is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/12/todays-dinner-is.html" />
      <updated>2023-03-12T18:36:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/12/todays-dinner-is.html</id>
      <content type="html">&lt;p&gt;Today&#39;s dinner is going to be a nice mishmash: Potato mousse, creamed spinach, red beed patties, green asparagus and fried eggs. At least it&#39;s going to be colorful. 😊&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Today&#39;s dinner is going to be a nice mishmash: Potato mousse, creamed spinach, red beed patties, green asparagus and fried eggs. At least it&#39;s going to be colorful. 😊</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 490 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/12/dailydogo.html" />
      <updated>2023-03-12T18:02:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 490 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/99f7753fba.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 490 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 489 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/11/dailydogo.html" />
      <updated>2023-03-11T20:40:04Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 489 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d3da905c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 489 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 488 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/10/213954.html" />
      <updated>2023-03-10T19:39:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/10/213954.html</id>
      <content type="html">&lt;p&gt;DailyDogo 488 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/84b539334b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 488 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 487 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/10/dailydogo.html" />
      <updated>2023-03-09T22:15:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 487 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8bf5a3fc7a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 487 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          When I try to figure...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/09/when-i-try.html" />
      <updated>2023-03-09T13:00:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/09/when-i-try.html</id>
      <content type="html">&lt;p&gt;When I try to figure how something works in my programming language I often use the service &lt;a href=&quot;https://replit.com&quot;&gt;replit&lt;/a&gt;. It offers a simple bare bones php environment which is ready to go to test out some stuff, is portable and free to use.&lt;/p&gt;
&lt;p&gt;One thing that is slightly annoying is that they only support PHP 7.4 out of the box, but it is very easy to upgrade the php version used to PHP 8. Let&#39;s start with an example:&lt;/p&gt;
&lt;pre class=&quot;language-php&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-php&quot;&gt;&lt;span class=&quot;token php language-php&quot;&gt;&lt;span class=&quot;token delimiter important&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;token variable&quot;&gt;$str&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string double-quoted-string&quot;&gt;&quot;Hello, world!&#92;n&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;str_contains&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;$str&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;llo&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string single-quoted-string&quot;&gt;&#39;YUP&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This code will not run as is on replit, because the function &lt;a href=&quot;https://www.php.net/manual/en/function.str-contains&quot;&gt;str_contains&lt;/a&gt; doesn&#39;t exist before PHP 8.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Screen Shot 2023 03 09 at 14 39 02&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f28919f82e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;So let&#39;s change that. Click the three dots in the side bar and reveal hidden files:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Screen Shot 2023 03 09 at 14 41 39&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/268880a450.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;Next, open the &lt;code&gt;replit.nix&lt;/code&gt; file and change the used php version, like so:&lt;/p&gt;
&lt;pre class=&quot;language-nix&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-nix&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; pkgs &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  deps &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;
    pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;php &lt;span class=&quot;token operator&quot;&gt;//&lt;/span&gt;from pkgs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;php74
  &lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Without needing to do anything else we have instructed &lt;a href=&quot;https://nixos.org&quot;&gt;nix&lt;/a&gt; - the package and config manager underlying much of replit.com&#39;s functionality - to use the latest php package which happens to be php 8.&lt;/p&gt;
&lt;p&gt;If we run our little test program now, it&#39;ll work:&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;Screen Shot 2023 03 09 at 14 47 10&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ceacd7f6ad.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;NB: The version of nix on replit is not up to date, so trying to use &lt;code&gt;php82&lt;/code&gt; to get the latest and greatest PHP Version 8.2 won&#39;t work. But php 8.0 is still better than php 7.4&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        When I try to figure how something works in my programming language I often use the service replit. It offers a simple bare bones php environment which is ready to go to test out some stuff, is portable and free to use. One thing that is slightly annoying is that they only support PHP 7.4 out of the box, but it is very easy to upgrade the php version used to PHP 8. Let&#39;s start with an example: &amp;lt;?php $str = &quot;Hello, world!&#92;n&quot;; if (str_contains($str, &#39;llo&#39;)){ echo &#39;YUP&#39;; } This code will not run as is on replit, because the function str_contains doesn&#39;t exist before PHP 8. So let&#39;s change that. Click the three dots in the side bar and reveal hidden files: Next, open the replit.nix file and change the used php version, like so: { pkgs }: { deps = [ pkgs.php //from pkgs.php74 ]; } Without needing to do anything else we have instructed nix - the package and config manager underlying much of replit.com&#39;s functionality - to use the latest php package which happens to be php 8. If we run our little test program now, it&#39;ll work: NB: The version of nix on replit is not up to date, so trying to use php82 to get the latest and greatest PHP Version 8.2 won&#39;t work. But php 8.0 is still better than php 7.4

        https://blog.martin-haehnel.de/2023/03/09/when-i-try.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It still is a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/09/it-still-is.html" />
      <updated>2023-03-09T11:11:29Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/09/it-still-is.html</id>
      <content type="html">&lt;p&gt;It still is a challenge to find the right words in code reviews, no matter what side I&#39;m on:&lt;/p&gt;
&lt;p&gt;As the reviewer I want to give really good reasons, be persuasive but also signal that I know that we live in a contingent universe. If I have knowledge to give I want to explain things well, without coming off as paternalistic.&lt;/p&gt;
&lt;p&gt;As the reviewed I want to be open minded, interested, but also being able to challenge things back without coming off as defensive.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It still is a challenge to find the right words in code reviews, no matter what side I&#39;m on: As the reviewer I want to give really good reasons, be persuasive but also signal that I know that we live in a contingent universe. If I have knowledge to give I want to explain things well, without coming off as paternalistic. As the reviewed I want to be open minded, interested, but also being able to challenge things back without coming off as defensive.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 486 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/08/dailydogo.html" />
      <updated>2023-03-08T17:25:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 486 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/36e8fcac32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 486 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 485 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/07/220600.html" />
      <updated>2023-03-07T20:06:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/07/220600.html</id>
      <content type="html">&lt;p&gt;DailyDogo 485 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/881642b0a6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 485 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 484 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/07/dailydogo.html" />
      <updated>2023-03-07T06:00:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 484 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3e80e52924.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 484 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 483 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/04/dailydogo.html" />
      <updated>2023-03-04T19:18:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 483 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e103c6c36e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 483 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 482 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/03/dailydogo.html" />
      <updated>2023-03-03T19:19:28Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 482 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/86590aba2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 482 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 481 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/02/dailydogo.html" />
      <updated>2023-03-02T17:56:08Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 481 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6f7bb2e36e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 481 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 480 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/03/01/dailydogo.html" />
      <updated>2023-03-01T20:00:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/03/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 480 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/82f993d8c1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 480 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 479 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/28/dailydogo.html" />
      <updated>2023-02-28T16:13:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 479 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f9ffde3c59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 479 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 478 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/27/dailydogo.html" />
      <updated>2023-02-27T17:37:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 478 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fe937c0ca5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 478 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Rounding up to 300...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/27/rounding-up-to.html" />
      <updated>2023-02-27T16:09:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/27/rounding-up-to.html</id>
      <content type="html">&lt;blockquote class=&quot;quoteback&quot; data-title=&quot;&quot; data-author=&quot;Manton Reece&quot; data-avatar=&quot;https://micro.blog/manton/avatar.jpg&quot; cite=&quot;https://www.manton.org/2023/02/27/rounding-up-to.html&quot;&gt;Rounding up to 300 characters &lt;a href=&quot;https://www.manton.org/2023/02/27/rounding-up-to.html&quot;&gt;manton.org&lt;/a&gt;&lt;p class=&quot;post_archived_links&quot;&gt;Read: &lt;a href=&quot;https://micro.blog/bookmarks/499590&quot;&gt;www.manton.org&lt;/a&gt; &lt;/p&gt;&lt;footer&gt;Manton Reece &lt;cite&gt;&lt;a href=&quot;https://www.manton.org/2023/02/27/rounding-up-to.html&quot; class=&quot;u-in-reply-to&quot;&gt;https://www.manton.org/2023/02/27/rounding-up-to.html&lt;/a&gt;&lt;/cite&gt;&lt;/footer&gt;&lt;/blockquote&gt;&lt;script src=&quot;https://micro.blog/quoteback.js&quot;&gt;&lt;/script&gt;
&lt;p&gt;Hooray!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Rounding up to 300 characters manton.orgRead: www.manton.org Manton Reece https://www.manton.org/2023/02/27/rounding-up-to.html Hooray!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Even though I want...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/27/even-though-i.html" />
      <updated>2023-02-27T09:44:11Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/27/even-though-i.html</id>
      <content type="html">&lt;p&gt;Even though I want to use the services that &lt;a href=&quot;https://omg.lol&quot;&gt;Omg.lol&lt;/a&gt; provides, I struggle to do so.&lt;/p&gt;
&lt;p&gt;I set up &lt;a href=&quot;https://omg.lol/matti&quot;&gt;a profile page&lt;/a&gt; now, but I feel like this should be a page reachable under my domain (I can probably set this up). I love the idea of a status.log, but I have a micro.blog already and all the content should come from that as the canonical place and be fed into other means to consume my content. I don&#39;t want to produce parallel content or keep things up to date manually.&lt;/p&gt;
&lt;p&gt;I&#39;ll keep my omg.log address, because my mastodon account is registered on their instance, but I&#39;m not sure what I&#39;ll use it for otherwise at the moment.&lt;/p&gt;
&lt;p&gt;UPDATE: My profile page is now reachable &lt;a href=&quot;https://martin-haehnel.de&quot;&gt;under my domain&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Even though I want to use the services that Omg.lol provides, I struggle to do so. I set up a profile page now, but I feel like this should be a page reachable under my domain (I can probably set this up). I love the idea of a status.log, but I have a micro.blog already and all the content should come from that as the canonical place and be fed into other means to consume my content. I don&#39;t want to produce parallel content or keep things up to date manually. I&#39;ll keep my omg.log address, because my mastodon account is registered on their instance, but I&#39;m not sure what I&#39;ll use it for otherwise at the moment. UPDATE: My profile page is now reachable under my domain.

        https://blog.martin-haehnel.de/2023/02/27/even-though-i.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 477 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/26/dailydogo.html" />
      <updated>2023-02-26T19:14:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 477 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f60f8427cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 477 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 476 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/25/dailydogo.html" />
      <updated>2023-02-25T17:32:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 476 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c116ec337a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 476 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The weird feeling...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/25/the-weird-feeling.html" />
      <updated>2023-02-25T14:50:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/25/the-weird-feeling.html</id>
      <content type="html">&lt;p&gt;The weird feeling when you realize that you work quicker in php than in typescript nowadays.&lt;/p&gt;
&lt;p&gt;Or in other words: I started to rewrite my side-project in php. Because why not? 😅&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The weird feeling when you realize that you work quicker in php than in typescript nowadays. Or in other words: I started to rewrite my side-project in php. Because why not? 😅</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 475 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/24/dailydogo.html" />
      <updated>2023-02-24T19:30:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 475 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/abde84c203.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 475 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 474 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/23/dailydogo.html" />
      <updated>2023-02-23T19:05:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 474 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/646cff6bab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 474 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 473 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/22/dailydogo.html" />
      <updated>2023-02-22T19:41:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 473 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/865f6d1c88.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 473 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Weird question: How...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/22/weird-question-how.html" />
      <updated>2023-02-22T11:23:21Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/22/weird-question-how.html</id>
      <content type="html">&lt;p&gt;Weird question: How do normal people handle giving/donations?&lt;/p&gt;
&lt;p&gt;How much? For what? Through what channels? Recurring or one-time? On/Off-Line? What else?&lt;/p&gt;
&lt;p&gt;I have been a bad donator so far and would like a starting point for doing the right thing, more often. Thanks!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Weird question: How do normal people handle giving/donations? How much? For what? Through what channels? Recurring or one-time? On/Off-Line? What else? I have been a bad donator so far and would like a starting point for doing the right thing, more often. Thanks!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 472 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/21/dailydogo.html" />
      <updated>2023-02-21T19:47:54Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 472 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f8bd380ced.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 472 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 471 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/20/dailydogo.html" />
      <updated>2023-02-20T17:02:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 471 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9efd0fca5a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 471 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 470 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/19/dailydogo.html" />
      <updated>2023-02-19T17:06:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 470 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/aad18e9b37.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 470 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 469 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/18/dailydogo.html" />
      <updated>2023-02-18T20:18:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 469 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5bb4a0d811.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 469 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 468 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/17/dailydogo.html" />
      <updated>2023-02-17T17:29:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 468 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/18fd63d8cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 468 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;m more and more...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/17/im-more-and.html" />
      <updated>2023-02-17T12:11:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/17/im-more-and.html</id>
      <content type="html">&lt;p&gt;I&#39;m more and more impressed by the offering of radio programs on Apple Music. The most recent &lt;a href=&quot;https://music.apple.com/us/station/buffalo-nichols/ra.1669383966&quot;&gt;Color Me Country episode&lt;/a&gt; with the blues musician &lt;a href=&quot;https://www.buffalo-nichols.com&quot;&gt;Buffalo Nichols&lt;/a&gt;, for example, is great.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/04/26/on-the-one.html&quot;&gt;Forward&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;m more and more impressed by the offering of radio programs on Apple Music. The most recent Color Me Country episode with the blues musician Buffalo Nichols, for example, is great. Forward</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 467 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/16/dailydogo.html" />
      <updated>2023-02-16T18:58:26Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 467 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/eec54abd7f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 467 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 466 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/15/dailydogo.html" />
      <updated>2023-02-15T17:24:18Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 466 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3af2b90035.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 466 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          As a big fan of the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/14/as-a-big.html" />
      <updated>2023-02-14T19:45:25Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/14/as-a-big.html</id>
      <content type="html">&lt;p&gt;As a big fan of the art of live sports commentary and especially of the US school of the profession: How cool is it, that in the NBA 🏀women are not only doing color commentary but also play-by-play?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/02/12/having-just-recently.html&quot;&gt;P. S. I just recently got into watching NBA.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        As a big fan of the art of live sports commentary and especially of the US school of the profession: How cool is it, that in the NBA 🏀women are not only doing color commentary but also play-by-play? P. S. I just recently got into watching NBA.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 465 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/14/dailydogo.html" />
      <updated>2023-02-14T18:16:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 465 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c702bfef2f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 465 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 464 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/13/dailydogo.html" />
      <updated>2023-02-13T18:28:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 464 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/326038492a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 464 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Having just recently...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/12/having-just-recently.html" />
      <updated>2023-02-12T20:32:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/12/having-just-recently.html</id>
      <content type="html">&lt;p&gt;Having just recently started (at 36) to become interested in the NBA, I immediately got interested in Spencer Dinwiddie. Classy guy (and fun to watch) as far as I can tell. Like, how cool and self aware is &lt;a href=&quot;https://www.youtube.com/watch?v=lWesyVDiwZ8&quot;&gt;this press conference&lt;/a&gt; for example?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Having just recently started (at 36) to become interested in the NBA, I immediately got interested in Spencer Dinwiddie. Classy guy (and fun to watch) as far as I can tell. Like, how cool and self aware is this press conference for example?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 463 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/12/dailydogo.html" />
      <updated>2023-02-12T18:52:21Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 463 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f6be57a1b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 463 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (God damn Ivory is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/11/god-damn-ivory.html" />
      <updated>2023-02-11T17:35:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/11/god-damn-ivory.html</id>
      <content type="html">&lt;p&gt;(God damn Ivory is so nice to use. And I don&#39;t even have cause to post a lot of stuff at the moment. But even &amp;quot;just&amp;quot; as a reader it&#39;s so amazing. I find myself wanting to use it.)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (God damn Ivory is so nice to use. And I don&#39;t even have cause to post a lot of stuff at the moment. But even &amp;quot;just&amp;quot; as a reader it&#39;s so amazing. I find myself wanting to use it.)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 462 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/11/dailydogo.html" />
      <updated>2023-02-11T17:05:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 462 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/47aa65ffac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 462 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 461 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/10/dailydogo.html" />
      <updated>2023-02-10T17:41:10Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 461 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/bcc0ac1078.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 461 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 460 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/09/dailydogo.html" />
      <updated>2023-02-09T16:58:50Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 460 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1ff31fd429.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 460 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 459 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/08/dailydogo.html" />
      <updated>2023-02-08T20:01:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 459 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/04d7374b04.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 459 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 458 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/07/dailydogo.html" />
      <updated>2023-02-07T19:02:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 458 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3f6db94683.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 458 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 457 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/06/dailydogo.html" />
      <updated>2023-02-06T18:32:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 457 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c8791ae97a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 457 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Boosts on mastodon...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/06/boosts-on-mastodon.html" />
      <updated>2023-02-06T12:15:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/06/boosts-on-mastodon.html</id>
      <content type="html">&lt;p&gt;Boosts on mastodon are great for discovering new accounts you might like to follow and terrible because you see people you definitely don&#39;t want to follow.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Boosts on mastodon are great for discovering new accounts you might like to follow and terrible because you see people you definitely don&#39;t want to follow.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 456 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/05/dailydogo.html" />
      <updated>2023-02-05T20:25:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 456 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ab2c6aa23.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 456 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 455 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/04/dailydogo.html" />
      <updated>2023-02-04T16:58:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 455 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/7dbd9f57bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 455 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 454 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/03/dailydogo.html" />
      <updated>2023-02-03T20:19:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 454 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ae4a799444.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 454 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 453 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/02/dailydogo.html" />
      <updated>2023-02-02T19:32:25Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 453 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/f1d5cdd837.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 453 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 452 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/01/dailydogo.html" />
      <updated>2023-02-01T20:01:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 452 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c514589309.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 452 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Mental rated nutty &amp;...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/01/mental-rated-nutty.html" />
      <updated>2023-02-01T18:05:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/01/mental-rated-nutty.html</id>
      <content type="html">&lt;p&gt;Mental rated nutty &amp;amp; mild&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c9ca74b563.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        Mental rated nutty &amp;amp; mild</echofeed:content>
    </entry>
    <entry>
      <title>
        
          As somebody who...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/02/01/as-somebody-who.html" />
      <updated>2023-02-01T11:35:09Z</updated>
      <id>https://blog.martin-haehnel.de/2023/02/01/as-somebody-who.html</id>
      <content type="html">&lt;p&gt;As somebody who frequently edits older posts to maybe add links and/or fix typos, etc., I just have to say how pleasant it is to do this through &lt;a href=&quot;https://micro.blog/danielpunkass&quot;&gt;@danielpunkass&lt;/a&gt;&#39; &lt;a href=&quot;https://redsweater.com/marsedit/&quot;&gt;MarsEdit&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        As somebody who frequently edits older posts to maybe add links and/or fix typos, etc., I just have to say how pleasant it is to do this through @danielpunkass&#39; MarsEdit.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 451 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/31/dailydogo.html" />
      <updated>2023-01-31T18:26:05Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 451 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/23909ca8f2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 451 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 450 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/30/dailydogo.html" />
      <updated>2023-01-30T19:24:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 450 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 6985&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1851d1f35b.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;FullSizeRender&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/5b8a0e6ab4.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;FullSizeRender&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/e92b271d0c.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 6988&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/fde41b2b3e.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;FullSizeRender&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/70fdaaece5.png?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 450 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 449 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/29/dailydogo.html" />
      <updated>2023-01-29T18:24:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 449 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/03ac5a4b99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 449 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 448 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/28/dailydogo.html" />
      <updated>2023-01-28T18:18:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 448 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/dee25d97ff.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 448 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously.](/2022/...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/28/previously-short-followup.html" />
      <updated>2023-01-28T15:19:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/28/previously-short-followup.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/12/got-an-unexpected.html&quot;&gt;Previously.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Short follow-up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://sometime.irisationlab.com&quot;&gt;Sometime&lt;/a&gt; has not worked out for me. I never got the hang of it. I think it&#39;s a good app, it just didn&#39;t click with me.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://teuxdeux.com/&quot;&gt;TeuxDeux&lt;/a&gt; is used very lightly. I would want to use it more, but I believe doing is more important than organizing or even tracking the doing.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/15/previously-im-not.html&quot;&gt;Forward (task managers).&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously. Short follow-up: Sometime has not worked out for me. I never got the hang of it. I think it&#39;s a good app, it just didn&#39;t click with me. TeuxDeux is used very lightly. I would want to use it more, but I believe doing is more important than organizing or even tracking the doing. Forward (task managers).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Jeez. Moderat FM on...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/28/jeez-moderat-fm.html" />
      <updated>2023-01-28T12:35:53Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/28/jeez-moderat-fm.html</id>
      <content type="html">&lt;p&gt;Jeez. Moderat FM on Apple Music is GREAT. Super atmospheric! Great electronic music! Highly recommended: &lt;a href=&quot;https://music.apple.com/fi/curator/moderat-fm/1551227759&quot;&gt;music.apple.com/fi/curato...&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Jeez. Moderat FM on Apple Music is GREAT. Super atmospheric! Great electronic music! Highly recommended: music.apple.com/fi/curato...</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 447 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/27/dailydogo.html" />
      <updated>2023-01-27T17:57:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 447 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c437089f9a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 447 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It is a pity that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/27/it-is-a.html" />
      <updated>2023-01-27T16:58:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/27/it-is-a.html</id>
      <content type="html">&lt;p&gt;It is a pity that there is no dog park for small dogs in Kuusamo. Poor Napu. 🐶&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It is a pity that there is no dog park for small dogs in Kuusamo. Poor Napu. 🐶</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I now have a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/27/i-now-have.html" />
      <updated>2023-01-27T08:25:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/27/i-now-have.html</id>
      <content type="html">&lt;p&gt;I now have a Mastodon account at &lt;a href=&quot;https://social.lol/@matti&quot;&gt;@matti@social.lol&lt;/a&gt;. I probably will end up mostly crossposting content from my Micro.blog there, but I will play it by ear.&lt;/p&gt;
&lt;p&gt;It&#39;s kinda funny: I tried to write this blog post three times already. The first two times I was going to say, that I was not going to get a Mastodon account just because I wanted to try out &lt;a href=&quot;https://tapbots.com/ivory/&quot;&gt;Ivory&lt;/a&gt;. But I guess being unable to publish said post was a sign (right?).&lt;/p&gt;
&lt;p&gt;So yeah. I&#39;m very excited about trying this new thing or &lt;em&gt;these new things&lt;/em&gt;, really: Mastodon, Ivory and &lt;a href=&quot;https://omg.lol&quot;&gt;OMG.lol&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I now have a Mastodon account at @matti@social.lol. I probably will end up mostly crossposting content from my Micro.blog there, but I will play it by ear. It&#39;s kinda funny: I tried to write this blog post three times already. The first two times I was going to say, that I was not going to get a Mastodon account just because I wanted to try out Ivory. But I guess being unable to publish said post was a sign (right?). So yeah. I&#39;m very excited about trying this new thing or these new things, really: Mastodon, Ivory and OMG.lol.

        https://blog.martin-haehnel.de/2023/01/27/i-now-have.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 446 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/26/dailydogo.html" />
      <updated>2023-01-26T17:26:55Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 446 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/677b005718.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 446 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 445 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/25/dailydogo.html" />
      <updated>2023-01-25T17:41:06Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 445 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/18971c37b5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 445 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hm. Is duckduckgo...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/25/hm-is-duckduckgo.html" />
      <updated>2023-01-25T09:09:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/25/hm-is-duckduckgo.html</id>
      <content type="html">&lt;p&gt;Hm. Is duckduckgo down? It seems like it… but I can&#39;t find its status page.&lt;/p&gt;
&lt;p&gt;EDIT: &lt;a href=&quot;https://www.reddit.com/r/duckduckgo/comments/10kub86/broke/&quot;&gt;It seems ddg was down for maybe 15 mins yesterday.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Hm. Is duckduckgo down? It seems like it… but I can&#39;t find its status page. EDIT: It seems ddg was down for maybe 15 mins yesterday.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 444 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/24/dailydogo.html" />
      <updated>2023-01-24T19:01:34Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 444 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ba6034bb2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 444 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 443 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/23/dailydogo.html" />
      <updated>2023-01-23T17:10:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 443 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b1c85361e5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 443 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 442 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/22/dailydogo.html" />
      <updated>2023-01-22T18:39:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 442 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/832d34c1cc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 442 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 441 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/21/dailydogo.html" />
      <updated>2023-01-21T19:23:33Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 441 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/348b7d1c77.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 441 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The way I journal - Part 1: Overview



        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/21/the-way-i.html" />
      <updated>2023-01-21T13:14:46Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/21/the-way-i.html</id>
      <content type="html">&lt;p&gt;My journal is in some ways similar to what &lt;a href=&quot;http://ratfactor.com/notes&quot;&gt;ratfactor&lt;/a&gt; has described, only its not a hybrid analog/digital system. When I have time I will publish the second part, which describes how I implemented this workflow in &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Without further ado, here is my workflow for keeping a digital journal:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Have a daily note, that logs what important things have happened that day. One thing per dash. I don&#39;t bother to log the time, because it&#39;s information I do not use (it also prevents redundancy). NB: I sometimes have only one or two things logged for that day. Logging too much just drowns out the actually important stuff.&lt;/li&gt;
&lt;li&gt;If there is more to say: Instead of writing paragraphs about the thing in the daily note, branch it out into its own note and leave a link at the dash.&lt;/li&gt;
&lt;li&gt;This is basically a special case of point 2: Always create a note for ongoing projects: Write down what you&#39;re doing in the project note. Use headings that link themselves back to the dailies - and link from the daily note to the project note: In this way you can see the progress made per project and don&#39;t clog up your dailies, while at the same time retaining a list of the things you did that day.&lt;/li&gt;
&lt;li&gt;At the beginning of the next week, you do a weekly wrap-up: Last weeks weekly note gets populated by the important thoughts, projects, observations, ideas, etc. that occurred that last week: This often doesn&#39;t take very long, because more often than not, you can copy and paste your most important bullet points from the dailies to your weeklies. You may want to add an extra comment to those here and there, or an extra thing, like an observation for stuff that didn&#39;t get logged in the dailies but is deemed important enough to be remarked upon for the weekly.&lt;/li&gt;
&lt;li&gt;This pattern of taking the most important stuff from the dailies and putting it into the weeklies is repeated for each periodic note: The monthlies get populated by the weeklies, the quarterlies by the monthlies and the yearlies by the quarterlies. The most important stuff gets distilled even more the longer the timespan is the note covers. In this way the workload is kept relatively small, although the first round of wrap-ups every year can take a while, since you have to do a weekly, monthly, quarterly and yearly wrap-up all at the same time. But even then: It shouldn&#39;t take longer than maybe an hour.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This little workflow is not too time intensive and at the same time gives me peace of mind: I do have a kind of journal of my life, which I can use to look back on what happened in my life.&lt;/p&gt;
&lt;p&gt;I have been more or less doing this kind of journaling for two years now and can really recommend it. A word to clarify something important though: A journal kept in this way is not going to be a literary delight. Individual thoughts and observations might rise to that level, but the journal as a whole is much more utilitarian. If this is not a problem and you&#39;d like the idea of distilling what&#39;s been important this might be for you.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The way I journal - Part 1: Overview

        https://blog.martin-haehnel.de/2023/01/21/the-way-i.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 440 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/20/dailydogo.html" />
      <updated>2023-01-20T17:44:48Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 440 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8ceeff8dc3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 440 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 439 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/19/dailydogo.html" />
      <updated>2023-01-19T17:10:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 439 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b7c5cc2c33.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 439 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Everything whole is...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/19/everything-whole-is.html" />
      <updated>2023-01-19T15:11:03Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/19/everything-whole-is.html</id>
      <content type="html">&lt;p&gt;Everything whole is just temporarily unbroken, I guess. My job situation will very likely change this year. Let&#39;s see what that means going forward.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Everything whole is just temporarily unbroken, I guess. My job situation will very likely change this year. Let&#39;s see what that means going forward.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 438 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/18/dailydogo.html" />
      <updated>2023-01-18T20:00:16Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 438 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ef71bced72.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 438 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 437 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/17/dailydogo.html" />
      <updated>2023-01-17T16:20:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 437 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1d2613e2f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 437 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 436 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/16/dailydogo.html" />
      <updated>2023-01-16T19:43:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 436 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ab9c4db89c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 436 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 436 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/15/dailydogo.html" />
      <updated>2023-01-15T12:17:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 436 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/4b1d362f62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 436 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Another dog pic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/another-dog-pic.html" />
      <updated>2023-01-14T15:59:23Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/another-dog-pic.html</id>
      <content type="html">&lt;p&gt;Another dog pic streak repair later. I guess I need that reminder in Due. ;)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Another dog pic streak repair later. I guess I need that reminder in Due. ;)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 435 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175558.html" />
      <updated>2023-01-14T15:55:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175558.html</id>
      <content type="html">&lt;p&gt;DailyDogo 435 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8596e4f413.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 435 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 434 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175543.html" />
      <updated>2023-01-14T15:55:43Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175543.html</id>
      <content type="html">&lt;p&gt;DailyDogo 434 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9ec6f5b307.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 434 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 433 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175530.html" />
      <updated>2023-01-14T15:55:30Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175530.html</id>
      <content type="html">&lt;p&gt;DailyDogo 433 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/c2f06a7512.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 433 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 432 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175514.html" />
      <updated>2023-01-14T15:55:14Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175514.html</id>
      <content type="html">&lt;p&gt;DailyDogo 432 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/289ce4f6e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 432 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 431 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175502.html" />
      <updated>2023-01-14T15:55:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175502.html</id>
      <content type="html">&lt;p&gt;DailyDogo 431 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/3ade6a450c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 431 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 430 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/175449.html" />
      <updated>2023-01-14T15:54:49Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/175449.html</id>
      <content type="html">&lt;p&gt;DailyDogo 430 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/9126e8a761.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 430 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 429 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/14/dailydogo.html" />
      <updated>2023-01-14T15:54:36Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 429 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6a2c6af7d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 429 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 428 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/08/dailydogo.html" />
      <updated>2023-01-08T16:21:52Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 428 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/067aad3a8c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 428 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I finally...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/08/i-finally-deactivated.html" />
      <updated>2023-01-08T15:42:19Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/08/i-finally-deactivated.html</id>
      <content type="html">&lt;p&gt;I finally deactivated my twitter account. Hadn&#39;t really used it in a long while, won&#39;t miss it either. It feels better to not support that terrible platform anymore.&lt;/p&gt;
&lt;p&gt;I&#39;m amazed how long it took to pull the trigger. Twitter had made me far longer unhappy than new leadership disaster. Before I was unhappy with the toxic culture on Twitter. But I guess reading &lt;a href=&quot;https://twitterisgoinggreat.com&quot;&gt;TwitterIsGoingGreat.com&lt;/a&gt; day in and out makes it crystal clear how outright damaging it would be to even just cross post my things over there.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I finally deactivated my twitter account. Hadn&#39;t really used it in a long while, won&#39;t miss it either. It feels better to not support that terrible platform anymore. I&#39;m amazed how long it took to pull the trigger. Twitter had made me far longer unhappy than new leadership disaster. Before I was unhappy with the toxic culture on Twitter. But I guess reading TwitterIsGoingGreat.com day in and out makes it crystal clear how outright damaging it would be to even just cross post my things over there.

        https://blog.martin-haehnel.de/2023/01/08/i-finally-deactivated.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          This last year was...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/previously-this-last.html" />
      <updated>2023-01-06T20:45:44Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/previously-this-last.html</id>
      <content type="html">&lt;p&gt;This last year was not a great year. I wouldn&#39;t say it was as bad as 2021. But it was a challenging year. 2022 was a year of increasing uncertainty. There was (and is) war happening very close by (or at least that&#39;s how it feels). There is the economic down turn, which touches everything and everyone around me.&lt;/p&gt;
&lt;p&gt;I look back and see a year that was defined by trying to get a grip, finally (for the umpteenth time). I was successful for a while, but almost nothing I tried to do stuck throughout the year (and beyond): I did not become a &lt;a href=&quot;https://blog.martin-haehnel.de/2022/05/29/taking-a-break.html&quot;&gt;microcaster&lt;/a&gt;, an &lt;a href=&quot;https://blog.martin-haehnel.de/categories/the-early-riser/&quot;&gt;early riser&lt;/a&gt;, a &lt;a href=&quot;https://blog.martin-haehnel.de/notes-on-notes/&quot;&gt;newsletter writer&lt;/a&gt;, for example. Notable exceptions: Duolingo (500+ days streak) and my &lt;a href=&quot;https://blog.martin-haehnel.de/categories/dailydogo/&quot;&gt;DailyDogo&lt;/a&gt; series of posts here on the blog. I started a side project that I will claim is still ongoing, even though I have not invested any time into it since mid December.&lt;/p&gt;
&lt;p&gt;Now, not all projects are meant to be continuous, or even meant to succeed. I know that and it&#39;s fine. I do appreciate the insight gained from projects more than their outcomes. Nonetheless it is gnawing at me that I do not have a lot to show in terms of progress regarding my own ideas. I feel like I ought to be capable enough to make things (bring side projects to a &amp;quot;version 1&amp;quot; state, continuously publish side projects that are ongoing, like newsletters), change or add habits, transform my surroundings in a positive manner, etc. I feel like I should be able to succeed sometimes, at least.&lt;/p&gt;
&lt;p&gt;Let me say it again: Despite what I just wrote, I do appreciate that I have not stood still and it would be wrong to claim that nothing good came out of me trying hard in whatever it may have been. I just feel like that I would like to be able to show &lt;em&gt;something&lt;/em&gt; for the effort, something tangible.&lt;/p&gt;
&lt;p&gt;Take my note taking system for example: For literal decades (only 2, but that still warrants the plural) I have honed and refined my skill to take notes, to think in notes and therefore am able to think many interesting thoughts beyond what a single &amp;quot;thought session&amp;quot; may come up with. I feel like this makes me good at my job. It actually makes me good at &lt;em&gt;life&lt;/em&gt; I&#39;ll claim, because my reflections are more mature and I do know myself better than without. The question is though: If I&#39;m so great, where are the results of me being good? I&#39;m a middling programmer - I do recognize that I started my career later than others and I know that I have not reached my ceiling and am far from it: I even made steps forward to becoming more proficient. But still. I&#39;m an okay writer (or was) - not in English, mind you - but where are the publications? I&#39;m a pretty good thinker - but where are my contributions to a field, any field, that I have had academic training in (history, sociology, anthropology of science and technology and computer science)?&lt;/p&gt;
&lt;p&gt;It seems to me that I&#39;m caught in a stage of continuously drafting grand visions of my future if I look back through the many years of yearly reviews I have done. I&#39;m pretty sick of it. In 2022 I already made a change towards not changing my plans, but instead refining them. I count this as my biggest professional success. I made my peace with having a career in software development (now about 5 years in) and am trying to learn more about software architecture (only slightly successful, but nonetheless).&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 7608&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1a3f81d223.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;In my private life, our dog has been a great source of happiness. At the same time having a dog is challenging. My family lives about 2000 km away. My partner&#39;s family lives about 800 km away. So visits to either part of the family became much, much harder to organize and carry out. The same is true for vacations. Daily life with a dog is great, but it&#39;s not a neutral thing either: A dog warrants attention, love, decision making and so many different things. Your life will change and it will revolve around the dog a lot. This is maybe not surprising intellectually, but experientially it feels still much different than what it may have looked like beforehand. I do not regret having a dog, as hard as it was raising or quite simply dealing with her this year sometimes, but I won&#39;t say that everything was fine and easy going all the time either. Still, I love her like a crazy dog dad loves his fur child.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;IMG 7282&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0fd5211ec6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
&lt;p&gt;We got engaged this year. We are now seven years together. I take this as a great sign that we are truly there for each other - through thick and thin. It was not an easy year. Lots of emotional support was needed. I&#39;m happy to say that I was able to give it, when I could. As an introvert - yep, that&#39;s true even when it comes to my partner - it wasn&#39;t always an easy thing to do, but I can look at myself in the mirror and honestly say that I tried hard in this regard. And I won&#39;t only complain, either: The vast vast VAST majority of our time together has been fun and something to look forward to. I love sharing my life with my favorite person and love having lots of memorable moments together.&lt;/p&gt;
&lt;p&gt;I have become a little rounder last year. Maybe two or three kilos - or is it five? A little grayer, too. I&#39;m 36 now. I feel like I&#39;m fine with my age and my looks. &amp;quot;Not having anything to show for the effort&amp;quot;-itis (see above) is surely a sign of getting older, I think and I do recognize that I&#39;m not super young anymore, but getting older is not worrying me. That&#39;s good. I think.&lt;/p&gt;
&lt;p&gt;So what will I remember from 2022? Our engagement for sure. How I got sick of grand plans maybe? That 2022 was economically a terrible year and I&#39;m happy that we were not too hard hit? Maybe that I tried hard on many occasions, despite any track record or tangible results?&lt;/p&gt;
&lt;p&gt;Maybe I will remember this year as a kind of beacon, like from a light house: On the one hand I had some insights that will surely inform my decision making next year. On the other hand, I came close at times to run aground in the shoals of actual lived adulthood. I have to be careful, but I also want to take heart: I&#39;m looking as ever hopeful into the future. Maybe I&#39;m able to not only claim a realistic approach next year but actually live one also.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yearly Reviews
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/01/year-of-strain.html&quot;&gt;Previously&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/01/04/this-year-had.html&quot;&gt;Forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Duolingo
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2021/12/13/cool.html&quot;&gt;Previously&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2024/04/11/days-of-duolingo.html&quot;&gt;Forward&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        This last year was not a great year. I wouldn&#39;t say it was as bad as 2021. But it was a challenging year. 2022 was a year of increasing uncertainty. There was (and is) war happening very close by (or at least that&#39;s how it feels). There is the economic down turn, which touches everything and everyone around me. I look back and see a year that was defined by trying to get a grip, finally (for the umpteenth time). I was successful for a while, but almost nothing I tried to do stuck throughout the year (and beyond): I did not become a microcaster, an early riser, a newsletter writer, for example. Notable exceptions: Duolingo (500+ days streak) and my DailyDogo series of posts here on the blog. I started a side project that I will claim is still ongoing, even though I have not invested any time into it since mid December. Now, not all projects are meant to be continuous, or even meant to succeed. I know that and it&#39;s fine. I do appreciate the insight gained from projects more than their outcomes. Nonetheless it is gnawing at me that I do not have a lot to show in terms of progress regarding my own ideas. I feel like I ought to be capable enough to make things (bring side projects to a &amp;quot;version 1&amp;quot; state, continuously publish side projects that are ongoing, like newsletters), change or add habits, transform my surroundings in a positive manner, etc. I feel like I should be able to succeed sometimes, at least. Let me say it again: Despite what I just wrote, I do appreciate that I have not stood still and it would be wrong to claim that nothing good came out of me trying hard in whatever it may have been. I just feel like that I would like to be able to show something for the effort, something tangible. Take my note taking system for example: For literal decades (only 2, but that still warrants the plural) I have honed and refined my skill to take notes, to think in notes and therefore am able to think many interesting thoughts beyond what a single &amp;quot;thought session&amp;quot; may come up with. I feel like this makes me good at my job. It actually makes me good at life I&#39;ll claim, because my reflections are more mature and I do know myself better than without. The question is though: If I&#39;m so great, where are the results of me being good? I&#39;m a middling programmer - I do recognize that I started my career later than others and I know that I have not reached my ceiling and am far from it: I even made steps forward to becoming more proficient. But still. I&#39;m an okay writer (or was) - not in English, mind you - but where are the publications? I&#39;m a pretty good thinker - but where are my contributions to a field, any field, that I have had academic training in (history, sociology, anthropology of science and technology and computer science)? It seems to me that I&#39;m caught in a stage of continuously drafting grand visions of my future if I look back through the many years of yearly reviews I have done. I&#39;m pretty sick of it. In 2022 I already made a change towards not changing my plans, but instead refining them. I count this as my biggest professional success. I made my peace with having a career in software development (now about 5 years in) and am trying to learn more about software architecture (only slightly successful, but nonetheless). In my private life, our dog has been a great source of happiness. At the same time having a dog is challenging. My family lives about 2000 km away. My partner&#39;s family lives about 800 km away. So visits to either part of the family became much, much harder to organize and carry out. The same is true for vacations. Daily life with a dog is great, but it&#39;s not a neutral thing either: A dog warrants attention, love, decision making and so many different things. Your life will change and it will revolve around the dog a lot. This is maybe not surprising intellectually, but experientially it feels still much different than what it may have looked like beforehand. I do not regret having a dog, as hard as it was raising or quite simply dealing with her this year sometimes, but I won&#39;t say that everything was fine and easy going all the time either. Still, I love her like a crazy dog dad loves his fur child. We got engaged this year. We are now seven years together. I take this as a great sign that we are truly there for each other - through thick and thin. It was not an easy year. Lots of emotional support was needed. I&#39;m happy to say that I was able to give it, when I could. As an introvert - yep, that&#39;s true even when it comes to my partner - it wasn&#39;t always an easy thing to do, but I can look at myself in the mirror and honestly say that I tried hard in this regard. And I won&#39;t only complain, either: The vast vast VAST majority of our time together has been fun and something to look forward to. I love sharing my life with my favorite person and love having lots of memorable moments together. I have become a little rounder last year. Maybe two or three kilos - or is it five? A little grayer, too. I&#39;m 36 now. I feel like I&#39;m fine with my age and my looks. &amp;quot;Not having anything to show for the effort&amp;quot;-itis (see above) is surely a sign of getting older, I think and I do recognize that I&#39;m not super young anymore, but getting older is not worrying me. That&#39;s good. I think. So what will I remember from 2022? Our engagement for sure. How I got sick of grand plans maybe? That 2022 was economically a terrible year and I&#39;m happy that we were not too hard hit? Maybe that I tried hard on many occasions, despite any track record or tangible results? Maybe I will remember this year as a kind of beacon, like from a light house: On the one hand I had some insights that will surely inform my decision making next year. On the other hand, I came close at times to run aground in the shoals of actual lived adulthood. I have to be careful, but I also want to take heart: I&#39;m looking as ever hopeful into the future. Maybe I&#39;m able to not only claim a realistic approach next year but actually live one also. Yearly Reviews Previously Forward Duolingo Previously Forward #corgi

        https://blog.martin-haehnel.de/2023/01/06/previously-this-last.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Daily Dogo Streak...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/daily-dogo-streak.html" />
      <updated>2023-01-06T17:52:15Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/daily-dogo-streak.html</id>
      <content type="html">&lt;p&gt;Daily Dogo Streak repaired! It took me about an hour to select pics, update my apple shortcut concoction so it&#39;d work also on my mac and uploading/posting these. But now I&#39;m current again.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Daily Dogo Streak repaired! It took me about an hour to select pics, update my apple shortcut concoction so it&#39;d work also on my mac and uploading/posting these. But now I&#39;m current again.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 427 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194822.html" />
      <updated>2023-01-06T17:48:22Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194822.html</id>
      <content type="html">&lt;p&gt;DailyDogo 427 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/970b213b65.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 427 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 426 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194700.html" />
      <updated>2023-01-06T17:47:00Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194700.html</id>
      <content type="html">&lt;p&gt;DailyDogo 426 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/b450691c0f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 426 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 425 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194541.html" />
      <updated>2023-01-06T17:45:41Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194541.html</id>
      <content type="html">&lt;p&gt;DailyDogo 425 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/81ee9e6540.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 425 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 424 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194432.html" />
      <updated>2023-01-06T17:44:32Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194432.html</id>
      <content type="html">&lt;p&gt;DailyDogo 424 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0c86a87954.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 424 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 423 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194320.html" />
      <updated>2023-01-06T17:43:20Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194320.html</id>
      <content type="html">&lt;p&gt;DailyDogo 423 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/628526a6dc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 423 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 422 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194221.html" />
      <updated>2023-01-06T17:42:21Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194221.html</id>
      <content type="html">&lt;p&gt;DailyDogo 422 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/6829193d55.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 422 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 421 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/194045.html" />
      <updated>2023-01-06T17:40:45Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/194045.html</id>
      <content type="html">&lt;p&gt;DailyDogo 421 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/137b5fee63.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 421 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 420 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193931.html" />
      <updated>2023-01-06T17:39:31Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193931.html</id>
      <content type="html">&lt;p&gt;DailyDogo 420 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/8d2fd8cec8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 420 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 419 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193824.html" />
      <updated>2023-01-06T17:38:24Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193824.html</id>
      <content type="html">&lt;p&gt;DailyDogo 419 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/719d95fa82.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 419 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 418 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193707.html" />
      <updated>2023-01-06T17:37:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193707.html</id>
      <content type="html">&lt;p&gt;DailyDogo 418 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/1e4841b1f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 418 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 417 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193601.html" />
      <updated>2023-01-06T17:36:01Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193601.html</id>
      <content type="html">&lt;p&gt;DailyDogo 417 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/520efae892.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 417 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 416 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193502.html" />
      <updated>2023-01-06T17:35:02Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193502.html</id>
      <content type="html">&lt;p&gt;DailyDogo 416 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/2fdd2a0de1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 416 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 415 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193407.html" />
      <updated>2023-01-06T17:34:07Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193407.html</id>
      <content type="html">&lt;p&gt;DailyDogo 415 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/074e47e3f1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 415 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 414 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193258.html" />
      <updated>2023-01-06T17:32:58Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193258.html</id>
      <content type="html">&lt;p&gt;DailyDogo 414 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/98a7966848.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 414 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 413 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193156.html" />
      <updated>2023-01-06T17:31:56Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193156.html</id>
      <content type="html">&lt;p&gt;DailyDogo 413 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/0587642cca.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 413 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 412 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/193057.html" />
      <updated>2023-01-06T17:30:57Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/193057.html</id>
      <content type="html">&lt;p&gt;DailyDogo 412 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/ac8fbf5a99.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 412 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 411 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2023/01/06/dailydogo.html" />
      <updated>2023-01-06T17:29:17Z</updated>
      <id>https://blog.martin-haehnel.de/2023/01/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 411 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;A black and white dog chewing a curly chew, looking pensive, whilst lying down on a red rug.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2023/a6d1da3858.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 411 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 410 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/20/230220.html" />
      <updated>2022-12-20T21:02:20Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/20/230220.html</id>
      <content type="html">&lt;p&gt;DailyDogo 410 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/257c221e40.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 410 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 409 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/20/230126.html" />
      <updated>2022-12-20T21:01:26Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/20/230126.html</id>
      <content type="html">&lt;p&gt;DailyDogo 409 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9320eecaf3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 409 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 408 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/20/dailydogo.html" />
      <updated>2022-12-20T21:00:48Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 408 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/a6eb25fcf5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 408 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Seeing people...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/19/seeing-people-struggle.html" />
      <updated>2022-12-19T13:36:26Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/19/seeing-people-struggle.html</id>
      <content type="html">&lt;p&gt;Seeing people struggle with Hugo makes me think that it would maybe be nice to have options for the static site generator when hosting with mb.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Seeing people struggle with Hugo makes me think that it would maybe be nice to have options for the static site generator when hosting with mb.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously](/2022/0...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/18/i-dont-want.html" />
      <updated>2022-12-18T19:48:28Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/18/i-dont-want.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/13/my-current-highlighting.html&quot;&gt;Previously&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I don&#39;t want to jinx it, but I kinda automatically open readwise reader instead of instagram or even gluon and I like this development a lot.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/03/21/readwise-reader-you.html&quot;&gt;Forward&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously I don&#39;t want to jinx it, but I kinda automatically open readwise reader instead of instagram or even gluon and I like this development a lot. Forward</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Christmas is a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/18/christmas-is-a.html" />
      <updated>2022-12-18T11:24:51Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/18/christmas-is-a.html</id>
      <content type="html">&lt;p&gt;Christmas is a catastrophe but this one is ours.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Christmas is a catastrophe but this one is ours.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 407 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/17/202306.html" />
      <updated>2022-12-17T18:23:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/17/202306.html</id>
      <content type="html">&lt;p&gt;DailyDogo 407 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/65bf0a9a5d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 407 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 406 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/17/dailydogo.html" />
      <updated>2022-12-17T18:22:04Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 406 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c58d91d85a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 406 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          You may think that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/15/you-may-think.html" />
      <updated>2022-12-15T15:38:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/15/you-may-think.html</id>
      <content type="html">&lt;p&gt;You may think that actually physically dying from mere stress is impossible, but I might prove y&#39;all wrong yet!&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        You may think that actually physically dying from mere stress is impossible, but I might prove y&#39;all wrong yet!</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 405 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/15/dailydogo.html" />
      <updated>2022-12-14T22:13:56Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 405 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a18057653.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 405 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 404 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/13/dailydogo.html" />
      <updated>2022-12-13T18:32:55Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 404 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5cc7bc6f1b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 404 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 403 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/12/dailydogo.html" />
      <updated>2022-12-12T18:58:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 403 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/664b4405d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 403 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Choose Boring...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/12/choose-boring-technology.html" />
      <updated>2022-12-12T16:28:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/12/choose-boring-technology.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://mcfunley.com/choose-boring-technology&quot;&gt;Choose Boring Technology&lt;/a&gt; by Dan McKinley is a great example of a kind of thought I enjoy. Boredom (in technology but I suspect also otherwise) is almost always a good thing.&lt;/p&gt;
&lt;p&gt;A while ago on another blog of mine and while still using Evernote for all my notes I wrote &lt;a href=&quot;https://noniin.antville.org/stories/2289504/&quot;&gt;an article about the benefits of using apps that are boring to you by now&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In most cases all of us have certain apps already in place for certain use cases. The idea here is to keep using the app and asking yourself if whatever is missing, is actually missing and then think about a change you actually would like to introduce to the current productivity system as a refactoring.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
      
      <echofeed:content type="html">
        Choose Boring Technology by Dan McKinley is a great example of a kind of thought I enjoy. Boredom (in technology but I suspect also otherwise) is almost always a good thing. A while ago on another blog of mine and while still using Evernote for all my notes I wrote an article about the benefits of using apps that are boring to you by now: In most cases all of us have certain apps already in place for certain use cases. The idea here is to keep using the app and asking yourself if whatever is missing, is actually missing and then think about a change you actually would like to introduce to the current productivity system as a refactoring.

        https://blog.martin-haehnel.de/2022/12/12/choose-boring-technology.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously.](/2022/...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/12/got-an-unexpected.html" />
      <updated>2022-12-12T14:28:25Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/12/got-an-unexpected.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html&quot;&gt;Previously.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Got an unexpected Mail from TeuxDeux with a special offer. Very tempting to get &lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html&quot;&gt;TeuxDeux&lt;/a&gt; for a whole year for only 18$…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/01/28/previously-short-followup.html&quot;&gt;Forward.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously. Got an unexpected Mail from TeuxDeux with a special offer. Very tempting to get TeuxDeux for a whole year for only 18$… Forward.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          This week&#39;s...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/12/this-weeks-micromonday.html" />
      <updated>2022-12-12T13:10:53Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/12/this-weeks-micromonday.html</id>
      <content type="html">&lt;p&gt;This week&#39;s MicroMonday goes to &lt;a href=&quot;https://micro.blog/val&quot;&gt;@val&lt;/a&gt;, who happens to live in Bishkek, Kyrgyzstan.&lt;/p&gt;
&lt;p&gt;She&#39;s a great follow, if you like&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;slice of life type posts (with lots of photos)&lt;/li&gt;
&lt;li&gt;interesting languages&lt;/li&gt;
&lt;li&gt;(depending on where you&#39;re from and what you have been exposed to) foreign cultures&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        This week&#39;s MicroMonday goes to @val, who happens to live in Bishkek, Kyrgyzstan. She&#39;s a great follow, if you like slice of life type posts (with lots of photos) interesting languages (depending on where you&#39;re from and what you have been exposed to) foreign cultures</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 402 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/11/dailydogo.html" />
      <updated>2022-12-11T18:37:00Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 402 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6dddb1917f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 402 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Two promising new...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html" />
      <updated>2022-12-11T12:37:52Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html</id>
      <content type="html">&lt;p&gt;Two promising new apps:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sometime.irisationlab.com&quot;&gt;Sometime&lt;/a&gt; is an app for recurring tasks and reminders that seems to be what I have (ab)used &lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/22/good-apps-due.html&quot;&gt;Due&lt;/a&gt; for. I just started using it, but the idea is great.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://teuxdeux.com&quot;&gt;TeuxDeux&lt;/a&gt; is a pretty, minimalistic todo list manager. This year I cut down hard on what I&#39;d call &amp;quot;metawork&amp;quot;, that is work to organize other work and abandoned my heavier task-management systems I had set up in Things or OmniFocus. I&#39;m still using their free trial, but I love their clean design and can see myself using this going forward. I love &lt;a href=&quot;https://teuxdeux.com/purpose&quot;&gt;their approach of doing business&lt;/a&gt; and I think that &lt;a href=&quot;https://www.instagram.com/teuxdeuxapp/&quot;&gt;their Instagram&lt;/a&gt; is actually funny.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/12/12/got-an-unexpected.html&quot;&gt;Forward (TeuxDeux and Sometime).&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/05/09/previously-two-more.html&quot;&gt;Forward (More promising Apps.)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
      
      <echofeed:content type="html">
        Two promising new apps: Sometime is an app for recurring tasks and reminders that seems to be what I have (ab)used Due for. I just started using it, but the idea is great. TeuxDeux is a pretty, minimalistic todo list manager. This year I cut down hard on what I&#39;d call &amp;quot;metawork&amp;quot;, that is work to organize other work and abandoned my heavier task-management systems I had set up in Things or OmniFocus. I&#39;m still using their free trial, but I love their clean design and can see myself using this going forward. I love their approach of doing business and I think that their Instagram is actually funny. Forward (TeuxDeux and Sometime). Forward (More promising Apps.)

        https://blog.martin-haehnel.de/2022/12/11/two-promising-new.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I wonder if there...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/10/i-wonder-if.html" />
      <updated>2022-12-10T19:56:12Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/10/i-wonder-if.html</id>
      <content type="html">&lt;p&gt;I wonder if there are people who feel excluded, because my no-frills daily dog pics do not include an alt text... is this something I should consider? I&#39;d like to make this little habit of mine more interesting in the new year, I think. Maybe this could be part of it?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I wonder if there are people who feel excluded, because my no-frills daily dog pics do not include an alt text... is this something I should consider? I&#39;d like to make this little habit of mine more interesting in the new year, I think. Maybe this could be part of it?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 401 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/10/dailydogo.html" />
      <updated>2022-12-10T17:23:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 401 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d2b9f40647.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 401 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Christmas is just...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/10/christmas-is-just.html" />
      <updated>2022-12-10T15:56:33Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/10/christmas-is-just.html</id>
      <content type="html">&lt;p&gt;Christmas is just hard on me. Every year I feel I have to steel myself, get ready for battle. I am not alone in this. I wonder what a calm and relaxed Christmas even would look like.&lt;/p&gt;
&lt;p&gt;In any case: I&#39;m trying to stay empathetic (or sympathetic if I can&#39;t put myself in the other&#39;s shoes), forgiving and try to get skillfully through the hell that is the last part of the year. As best as I can, I try to not make it about me and my introvert tendencies. This time is a gift for others.&lt;/p&gt;
&lt;p&gt;But between us: I&#39;m already looking forward to January, tbh.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Christmas is just hard on me. Every year I feel I have to steel myself, get ready for battle. I am not alone in this. I wonder what a calm and relaxed Christmas even would look like. In any case: I&#39;m trying to stay empathetic (or sympathetic if I can&#39;t put myself in the other&#39;s shoes), forgiving and try to get skillfully through the hell that is the last part of the year. As best as I can, I try to not make it about me and my introvert tendencies. This time is a gift for others. But between us: I&#39;m already looking forward to January, tbh.

        https://blog.martin-haehnel.de/2022/12/10/christmas-is-just.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 400 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/09/dailydogo.html" />
      <updated>2022-12-09T17:39:53Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 400 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d2aa90784.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 400 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I wonder if...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/09/i-wonder-if.html" />
      <updated>2022-12-09T16:04:25Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/09/i-wonder-if.html</id>
      <content type="html">&lt;p&gt;I wonder if &lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/18/good-apps-albums.html&quot;&gt;Albums&lt;/a&gt; will ever come out with its desktop version. Would be an instabuy for me.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I wonder if Albums will ever come out with its desktop version. Would be an instabuy for me.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s just the best...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/09/its-just-the.html" />
      <updated>2022-12-09T14:18:58Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/09/its-just-the.html</id>
      <content type="html">&lt;p&gt;It&#39;s just the best feeling strolling to our small city&#39;s center, the dog is in a good mood, I&#39;m in a good mood. People are laughing. Walks like this are just the best. I don&#39;t even mind the cold. 🐶&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s just the best feeling strolling to our small city&#39;s center, the dog is in a good mood, I&#39;m in a good mood. People are laughing. Walks like this are just the best. I don&#39;t even mind the cold. 🐶</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good that my side...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/09/good-that-my.html" />
      <updated>2022-12-09T10:13:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/09/good-that-my.html</id>
      <content type="html">&lt;p&gt;Good that my side project is done in typescript. Since learning and using PHP everyday for my current job I really have forgotten a lot…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Good that my side project is done in typescript. Since learning and using PHP everyday for my current job I really have forgotten a lot…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Walked with the dog...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/09/walked-with-the.html" />
      <updated>2022-12-08T22:00:39Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/09/walked-with-the.html</id>
      <content type="html">&lt;p&gt;Walked with the dog 2km on a winter trail half an hour from home. Started around 15:30, it was already dark. My headlamp stopped working almost immediately. Thanks to the little flashlight on my phone, Napu and I were still able to walk the trail.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Walked with the dog 2km on a winter trail half an hour from home. Started around 15:30, it was already dark. My headlamp stopped working almost immediately. Thanks to the little flashlight on my phone, Napu and I were still able to walk the trail.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 399 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/08/dailydogo.html" />
      <updated>2022-12-08T21:31:12Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 399 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/25373a2cfb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 399 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I&#39;m coming to you...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/07/im-coming-to.html" />
      <updated>2022-12-07T18:29:13Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/07/im-coming-to.html</id>
      <content type="html">&lt;p&gt;I&#39;m coming to you live from MarsEdit 5! 🤩&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I&#39;m coming to you live from MarsEdit 5! 🤩</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 398 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/07/dailydogo.html" />
      <updated>2022-12-07T17:26:19Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 398 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/63de929f2e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 398 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I don&#39;t know why,...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/07/i-dont-know.html" />
      <updated>2022-12-07T07:30:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/07/i-dont-know.html</id>
      <content type="html">&lt;p&gt;I don&#39;t know why, but there is just something so comforting listening to &lt;a href=&quot;https://www.theincomparable.com/tpk&quot;&gt;TotalPartyKill&lt;/a&gt;&#39;s Dark Sun campaign. The og actual play D&amp;amp;D podcast party that started in 2014 is still one of my favorites.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I don&#39;t know why, but there is just something so comforting listening to TotalPartyKill&#39;s Dark Sun campaign. The og actual play D&amp;amp;D podcast party that started in 2014 is still one of my favorites.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 397 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/06/dailydogo.html" />
      <updated>2022-12-06T18:18:26Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 397 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7a8e60bca3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 397 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 396 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/05/dailydogo.html" />
      <updated>2022-12-05T17:16:44Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 396 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e159f41a30.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 396 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          For this week&#39;s...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/05/for-this-weeks.html" />
      <updated>2022-12-05T12:32:47Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/05/for-this-weeks.html</id>
      <content type="html">&lt;p&gt;For this week&#39;s MicroMonday, I recommend that you follow writer and Buddhist &lt;a href=&quot;https://micro.blog/patrickrhone&quot;&gt;@patrickrhone&lt;/a&gt;. I have followed him a long time and he still manages to remind me to be mindful, to stay grounded and at the same time connected to the modern world.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        For this week&#39;s MicroMonday, I recommend that you follow writer and Buddhist @patrickrhone. I have followed him a long time and he still manages to remind me to be mindful, to stay grounded and at the same time connected to the modern world.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 395 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/04/191109.html" />
      <updated>2022-12-04T17:11:09Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/04/191109.html</id>
      <content type="html">&lt;p&gt;DailyDogo 395 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/fdff0545ab.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 395 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 394 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/04/dailydogo.html" />
      <updated>2022-12-03T22:40:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 394 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d5c02c774.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 394 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Does anybody have...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/03/does-anybody-have.html" />
      <updated>2022-12-03T14:30:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/03/does-anybody-have.html</id>
      <content type="html">&lt;p&gt;Does anybody have tips for good flannel shirts? I love the &lt;a href=&quot;https://www.patagonia.com/product/mens-long-sleeved-organic-cotton-midweight-fjord-flannel-shirt/42400.html&quot;&gt;monochrome ones from Patagonia&lt;/a&gt; (this year they don&#39;t have a model that is monochrome), but maybe someone has a brand they love that I don&#39;t know about?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Does anybody have tips for good flannel shirts? I love the monochrome ones from Patagonia (this year they don&#39;t have a model that is monochrome), but maybe someone has a brand they love that I don&#39;t know about?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I graduated to the...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/03/i-graduated-to.html" />
      <updated>2022-12-03T14:29:23Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/03/i-graduated-to.html</id>
      <content type="html">&lt;p&gt;I graduated to the next bigger shirt size. Which also means that I need to invest in my wardrobe. There is just no hiding that fact anymore.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I graduated to the next bigger shirt size. Which also means that I need to invest in my wardrobe. There is just no hiding that fact anymore.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 393 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/02/190205.html" />
      <updated>2022-12-02T17:02:05Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/02/190205.html</id>
      <content type="html">&lt;p&gt;DailyDogo 393 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2469c11c54.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 393 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 392 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/02/dailydogo.html" />
      <updated>2022-12-02T06:56:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 392 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b0c588e6ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 392 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Hm. The last...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/12/01/hm-the-last.html" />
      <updated>2022-12-01T18:37:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/12/01/hm-the-last.html</id>
      <content type="html">&lt;p&gt;Hm. The last &lt;a href=&quot;https://micro.blog/atpfm@mastodon.social&quot;&gt;@atpfm@mastodon.social&lt;/a&gt;  makes me think that having a dedicated mastodon account so I could use tapbots&#39; client when it&#39;s out makes sense. It&#39;s probably not gonna support micro.blog. Or could it? &lt;a href=&quot;https://micro.blog/manton&quot;&gt;@manton&lt;/a&gt; &lt;a href=&quot;https://micro.blog/ivory@tapbots.social&quot;&gt;@ivory@tapbots.social&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Hm. The last @atpfm@mastodon.social makes me think that having a dedicated mastodon account so I could use tapbots&#39; client when it&#39;s out makes sense. It&#39;s probably not gonna support micro.blog. Or could it? @manton @ivory@tapbots.social</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 391 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/30/dailydogo.html" />
      <updated>2022-11-30T19:16:02Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 391 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/86b69f4b59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 391 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 390 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/29/dailydogo.html" />
      <updated>2022-11-29T18:25:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 390 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a8c9af979.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 390 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It was naive to...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/29/it-was-naive.html" />
      <updated>2022-11-29T14:44:38Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/29/it-was-naive.html</id>
      <content type="html">&lt;p&gt;It was naive to think that the economic situation would not make a meaningful difference. I am prepared for a hard winter. But it might, it &lt;em&gt;will&lt;/em&gt; get harder. As Ingeborg Bachmann so aptly said: &lt;a href=&quot;https://www.lyrikline.org/de/gedichte/die-gestundete-zeit-264&quot;&gt;&amp;quot;Es kommen härtere Tage&amp;quot;&lt;/a&gt; (There will be harder days).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It was naive to think that the economic situation would not make a meaningful difference. I am prepared for a hard winter. But it might, it will get harder. As Ingeborg Bachmann so aptly said: &amp;quot;Es kommen härtere Tage&amp;quot; (There will be harder days).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 389 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/28/212516.html" />
      <updated>2022-11-28T19:25:16Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/28/212516.html</id>
      <content type="html">&lt;p&gt;DailyDogo 389 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6f6a1befdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 389 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My MicroMonday...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/28/my-micromonday-recommendation.html" />
      <updated>2022-11-28T16:48:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/28/my-micromonday-recommendation.html</id>
      <content type="html">&lt;p&gt;My MicroMonday recommendation this week goes to &lt;a href=&quot;https://micro.blog/annahavron&quot;&gt;@annahavron&lt;/a&gt;: A thoughtful productivity geek, that writes so interestingly (not only) about &lt;a href=&quot;https://analogoffice.net&quot;&gt;paper-based productivity&lt;/a&gt; that it&#39;s a joy to read even for someone who is not even using paper to organize their own life.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My MicroMonday recommendation this week goes to @annahavron: A thoughtful productivity geek, that writes so interestingly (not only) about paper-based productivity that it&#39;s a joy to read even for someone who is not even using paper to organize their own life.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          twitterisgoinggreat....
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/28/twitterisgoinggreatcom-finally-took.html" />
      <updated>2022-11-28T07:32:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/28/twitterisgoinggreatcom-finally-took.html</id>
      <content type="html">&lt;p&gt;twitterisgoinggreat.com finally took over the autocomplete spot of twitter itself. I&#39;m not sad for twitter as a platform. It seemed like an attempt in solving an unsolvable moderation problem (that is: you can&#39;t solve moderation, you can only manage it).&lt;/p&gt;
&lt;p&gt;But it makes me sad and angry how employees are treated. I hate that we live in the era of the billionaire. And I feel weirdly proud of being a European citizen in which this shit could&#39;ve never happened in this way.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        twitterisgoinggreat.com finally took over the autocomplete spot of twitter itself. I&#39;m not sad for twitter as a platform. It seemed like an attempt in solving an unsolvable moderation problem (that is: you can&#39;t solve moderation, you can only manage it). But it makes me sad and angry how employees are treated. I hate that we live in the era of the billionaire. And I feel weirdly proud of being a European citizen in which this shit could&#39;ve never happened in this way.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 388 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/28/dailydogo.html" />
      <updated>2022-11-27T22:04:14Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 388 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bf4a423956.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 388 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          [Previously. (Media...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/27/if-there-would.html" />
      <updated>2022-11-27T16:39:33Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/27/if-there-would.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/05/09/previously-two-more.html&quot;&gt;Previously. (Media Tracking)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If there would be a bookshelves feature for games then the &amp;quot;currently playing&amp;quot; shelf would include &lt;a href=&quot;https://dead-cells.com/&quot;&gt;Dead Cells&lt;/a&gt;. Bought it on a whim the other day, I have been playing it the whole weekend on my MacBook Air through steam using my xbox one controller. Easy to pick up, hard to put down.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2023/06/12/quick-update-on.html&quot;&gt;Forward. (Dead Cells)&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously. (Media Tracking) If there would be a bookshelves feature for games then the &amp;quot;currently playing&amp;quot; shelf would include Dead Cells. Bought it on a whim the other day, I have been playing it the whole weekend on my MacBook Air through steam using my xbox one controller. Easy to pick up, hard to put down. Forward. (Dead Cells)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 387 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/26/dailydogo.html" />
      <updated>2022-11-26T18:41:57Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 387 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bcfa9223df.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 387 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 386 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/25/dailydogo.html" />
      <updated>2022-11-25T17:03:26Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 386 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4be06a5732.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 386 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 385 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/24/dailydogo.html" />
      <updated>2022-11-24T18:28:30Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 385 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6b54c720bb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 385 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 384 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/23/dailydogo.html" />
      <updated>2022-11-23T18:42:12Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 384 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5175a9d598.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 384 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Maybe it&#39;s because I...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/23/maybe-its-because.html" />
      <updated>2022-11-23T15:03:55Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/23/maybe-its-because.html</id>
      <content type="html">&lt;p&gt;Maybe it&#39;s because I post more, maybe because I have followed more people recently, maybe because more people spend time away from twitter, maybe it&#39;s the activitypub/mastodon integration: In any case I really enjoy my somewhat more active timeline recently.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Maybe it&#39;s because I post more, maybe because I have followed more people recently, maybe because more people spend time away from twitter, maybe it&#39;s the activitypub/mastodon integration: In any case I really enjoy my somewhat more active timeline recently.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I can&#39;t recommend...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/23/i-cant-recommend.html" />
      <updated>2022-11-23T09:54:16Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/23/i-cant-recommend.html</id>
      <content type="html">&lt;p&gt;I can&#39;t recommend &lt;a href=&quot;https://micro.blog/maggie@indieweb.social&quot;&gt;@maggie@indieweb.social&lt;/a&gt;&#39;s website enough. If you&#39;re into the intersection of design, note taking and digital anthropology, this is &lt;a href=&quot;https://maggieappleton.com/&quot;&gt;a great read&lt;/a&gt;.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I can&#39;t recommend @maggie@indieweb.social&#39;s website enough. If you&#39;re into the intersection of design, note taking and digital anthropology, this is a great read.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 383 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/22/dailydogo.html" />
      <updated>2022-11-22T18:07:44Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 383 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d14c75828e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 383 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 382 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/21/dailydogo.html" />
      <updated>2022-11-21T18:43:35Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 382 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/69fa9487ed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 382 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My MicroMonday this...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/21/my-micromonday-this.html" />
      <updated>2022-11-21T13:43:41Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/21/my-micromonday-this.html</id>
      <content type="html">&lt;p&gt;My MicroMonday this week goes to &lt;a href=&quot;https://micro.blog/Miraz&quot;&gt;@Miraz&lt;/a&gt; who lives in New Zealand. I love the little slices of life we get when she posts a photo of her life and the nature that surrounds her. She is also helpful (see &lt;a href=&quot;https://micro.blog/custom&quot;&gt;@custom&lt;/a&gt;), thoughtful and a great treasure to have in any micro.blog timeline.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My MicroMonday this week goes to @Miraz who lives in New Zealand. I love the little slices of life we get when she posts a photo of her life and the nature that surrounds her. She is also helpful (see @custom), thoughtful and a great treasure to have in any micro.blog timeline.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          At least I&#39;m not...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/21/at-least-im.html" />
      <updated>2022-11-21T06:44:48Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/21/at-least-im.html</id>
      <content type="html">&lt;p&gt;At least I&#39;m not going to sweat anytime soon.&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7612d52b6a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        At least I&#39;m not going to sweat anytime soon.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 381 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/20/dailydogo.html" />
      <updated>2022-11-20T19:49:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 381 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f15df4900a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 381 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Two hours of mindful...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/20/two-hours-of.html" />
      <updated>2022-11-20T13:30:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/20/two-hours-of.html</id>
      <content type="html">&lt;p&gt;Two hours of mindful chores while listening to podcasts. Almost enjoyable. A point to think about, though: It took me three full days of doing nothing before I felt I had the energy to clean, wash and organize things. Still… I&#39;m very pleased with the result.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Two hours of mindful chores while listening to podcasts. Almost enjoyable. A point to think about, though: It took me three full days of doing nothing before I felt I had the energy to clean, wash and organize things. Still… I&#39;m very pleased with the result.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 380 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/19/dailydogo.html" />
      <updated>2022-11-19T18:25:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 380 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3268e4184e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 380 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The more I read...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/19/the-more-i.html" />
      <updated>2022-11-19T12:27:34Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/19/the-more-i.html</id>
      <content type="html">&lt;p&gt;The more I read about how mastodon works, the happier I am that I ended up being so curious about the publishing options in &lt;a href=&quot;https://ia.net/writer&quot;&gt;iA Writer&lt;/a&gt; that I had to check out micro.blog about 1.5 years ago.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong: It&#39;s great that people are checking out mastodon. &lt;a href=&quot;https://help.micro.blog/t/activitypub/95&quot;&gt;It lets me follow them on micro.blog.&lt;/a&gt; But moderation and all the other social aspects of running a social network (even if it&#39;s &quot;just&quot; a timeline of blogs) are what&#39;s hard.&lt;/p&gt;
&lt;p&gt;Many people that are leaving Twitter right now (or at least create a mastodon account on the side, for the time after Twitter finally implodes) end up on &lt;a href=&quot;https://mastodon.social/explore&quot;&gt;mastodon.social&lt;/a&gt;, the biggest mastodon instance there is. When I scrolled through their explore timeline I was surprised to find a post by fellow corgi lover and micro.blogger Hollie Butler (&lt;a href=&quot;https://micro.blog/hollie&quot;&gt;@hollie&lt;/a&gt;) that urged people to find a better instance, because mastodon.social has had a bad moderation for a long time.&lt;/p&gt;
&lt;p&gt;In the replies to this post a user asked: Can I move my content over to a new (e.g. better moderated) instance? The answer is no. You can move the people you follow, but not your content, it seems.&lt;/p&gt;
&lt;p&gt;With micro.blog this combination of problems doesn&#39;t really exist. On the one hand they have and enforce community guidelines that protect the community against hate speech, harassment and so on. Community manager Jean MacDonald (&lt;a href=&quot;https://micro.blog/jean&quot;&gt;@jean&lt;/a&gt;) does an excellent job as far as I can tell. So there is no reason to move. Micro.blog is just a blog hoster with a social timeline component.&lt;/p&gt;
&lt;p&gt;On the other hand exporting your data is easy enough, too. Even if there would be a reason at some point to move: I do own all my content and it&#39;s not useless content, because a micro.blog is just a blog and so the content I&#39;d export are just blog posts.&lt;/p&gt;
&lt;p&gt;The point is: At the moment micro.blog seems like the ideal place that is not twitter, but has moderation figured out (and still lets you connect to mastodon users). I feel like I&#39;m in good hands with them. If you&#39;re willing to fiddle, you can connect your own blog for free, or you could pay them 5$ a month and have everything set up for you. Connect a domain and you really truly own your content, even in the case you feel the need to move away, since the permalinks point to your domain not micro.blog&#39;s (&lt;a href=&quot;https://help.micro.blog/t/moving-micro-blog-hosted-blog-to-self-hosted/1201&quot;&gt;I&#39;m not claiming the moving blog hosters is easy, but it&#39;s possible…&lt;/a&gt;).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The more I read about how mastodon works, the happier I am that I ended up being so curious about the publishing options in iA Writer that I had to check out micro.blog about 1.5 years ago. Don&#39;t get me wrong: It&#39;s great that people are checking out mastodon. It lets me follow them on micro.blog. But moderation and all the other social aspects of running a social network (even if it&#39;s &quot;just&quot; a timeline of blogs) are what&#39;s hard. Many people that are leaving Twitter right now (or at least create a mastodon account on the side, for the time after Twitter finally implodes) end up on mastodon.social, the biggest mastodon instance there is. When I scrolled through their explore timeline I was surprised to find a post by fellow corgi lover and micro.blogger Hollie Butler (@hollie) that urged people to find a better instance, because mastodon.social has had a bad moderation for a long time. In the replies to this post a user asked: Can I move my content over to a new (e.g. better moderated) instance? The answer is no. You can move the people you follow, but not your content, it seems. With micro.blog this combination of problems doesn&#39;t really exist. On the one hand they have and enforce community guidelines that protect the community against hate speech, harassment and so on. Community manager Jean MacDonald (@jean) does an excellent job as far as I can tell. So there is no reason to move. Micro.blog is just a blog hoster with a social timeline component. On the other hand exporting your data is easy enough, too. Even if there would be a reason at some point to move: I do own all my content and it&#39;s not useless content, because a micro.blog is just a blog and so the content I&#39;d export are just blog posts. The point is: At the moment micro.blog seems like the ideal place that is not twitter, but has moderation figured out (and still lets you connect to mastodon users). I feel like I&#39;m in good hands with them. If you&#39;re willing to fiddle, you can connect your own blog for free, or you could pay them 5$ a month and have everything set up for you. Connect a domain and you really truly own your content, even in the case you feel the need to move away, since the permalinks point to your domain not micro.blog&#39;s (I&#39;m not claiming the moving blog hosters is easy, but it&#39;s possible…).

        https://blog.martin-haehnel.de/2022/11/19/the-more-i.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 379 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/18/dailydogo.html" />
      <updated>2022-11-18T18:03:30Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 379 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/99487aa7b6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 379 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Working on my side...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/17/working-on-my.html" />
      <updated>2022-11-17T21:29:56Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/17/working-on-my.html</id>
      <content type="html">&lt;p&gt;Working on my side project, watching other people play video games on my second display (youtube). It&#39;s nice to have a free day tomorrow and enjoying a quiet night.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Working on my side project, watching other people play video games on my second display (youtube). It&#39;s nice to have a free day tomorrow and enjoying a quiet night.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 378 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/17/dailydogo.html" />
      <updated>2022-11-17T18:51:15Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 378 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/13084ab338.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 378 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 377 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/16/dailydogo.html" />
      <updated>2022-11-16T19:31:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 377 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/adedd5ba6c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 377 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 376 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/15/dailydogo.html" />
      <updated>2022-11-15T18:28:49Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 376 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e95e27f467.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 376 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Very hazy day for...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/15/very-hazy-day.html" />
      <updated>2022-11-15T11:58:28Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/15/very-hazy-day.html</id>
      <content type="html">&lt;p&gt;Very hazy day for me. Not a lot of momentum. I&#39;m not doing nothing, but I surely am less effective today. I feel privileged that I&#39;m able to go slower if needed, because I control enough of my work life.&lt;/p&gt;
&lt;p&gt;Working from home as a programmer is amazing in that regard.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Very hazy day for me. Not a lot of momentum. I&#39;m not doing nothing, but I surely am less effective today. I feel privileged that I&#39;m able to go slower if needed, because I control enough of my work life. Working from home as a programmer is amazing in that regard.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 375 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/14/dailydogo.html" />
      <updated>2022-11-14T18:34:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 375 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39e0954ce6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 375 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          It&#39;s new project...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/14/its-new-project.html" />
      <updated>2022-11-14T11:43:29Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/14/its-new-project.html</id>
      <content type="html">&lt;p&gt;It&#39;s new project time over here. The new project is going to be Scrum instead of Kanban. Don&#39;t like that. But I also don&#39;t like going to the gym.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        It&#39;s new project time over here. The new project is going to be Scrum instead of Kanban. Don&#39;t like that. But I also don&#39;t like going to the gym.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My MicroMonday rec...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/14/my-micromonday-rec.html" />
      <updated>2022-11-14T11:36:33Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/14/my-micromonday-rec.html</id>
      <content type="html">&lt;p&gt;My MicroMonday rec for this week is &lt;a href=&quot;https://micro.blog/sod&quot;&gt;@sod&lt;/a&gt;. As far as I can tell his favorite hobbies include: Helping people, being nice and having lots of knowledge around Hugo/micro.blog.&lt;/p&gt;
&lt;p&gt;(And starting next week I&#39;ll have to rec a little bit more diversely)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My MicroMonday rec for this week is @sod. As far as I can tell his favorite hobbies include: Helping people, being nice and having lots of knowledge around Hugo/micro.blog. (And starting next week I&#39;ll have to rec a little bit more diversely)</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 374 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/13/dailydogo.html" />
      <updated>2022-11-13T17:34:03Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 374 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/07fdefe347.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 374 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Jeez, I have not had...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/13/jeez-i-have.html" />
      <updated>2022-11-13T15:10:19Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/13/jeez-i-have.html</id>
      <content type="html">&lt;p&gt;Jeez, I have not had so much fun tinkering with a side project, ever, I think. Slowly but surely building and refactoring, the way I like, without sprint goals or other deadlines, being in charge. It&#39;s just the best feeling. 👨‍💻&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Jeez, I have not had so much fun tinkering with a side project, ever, I think. Slowly but surely building and refactoring, the way I like, without sprint goals or other deadlines, being in charge. It&#39;s just the best feeling. 👨‍💻</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 373 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/12/dailydogo.html" />
      <updated>2022-11-12T20:44:08Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 373 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1d2475393b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 373 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 372 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/11/dailydogo.html" />
      <updated>2022-11-11T21:56:45Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 372 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1c0a09410c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 372 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Amazingly bad...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/11/amazingly-bad-weather.html" />
      <updated>2022-11-11T15:21:11Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/11/amazingly-bad-weather.html</id>
      <content type="html">&lt;p&gt;Amazingly bad weather today. Snow is melting. It rains and it&#39;s dark already(it&#39;s only 5 pm). And the only thing I feel is a kind of science-fiction coziness. I imagine we would have to endure weather like this when we will settle other planets. I&#39;m ready for it.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Amazingly bad weather today. Snow is melting. It rains and it&#39;s dark already(it&#39;s only 5 pm). And the only thing I feel is a kind of science-fiction coziness. I imagine we would have to endure weather like this when we will settle other planets. I&#39;m ready for it.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 371 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/10/dailydogo.html" />
      <updated>2022-11-10T21:50:46Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 371 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/28aaec58fd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 371 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 370 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/09/dailydogo.html" />
      <updated>2022-11-09T20:54:52Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 370 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f209c82fb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 370 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 369 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/08/222436.html" />
      <updated>2022-11-08T19:24:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/08/222436.html</id>
      <content type="html">&lt;p&gt;DailyDogo 369 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a1f0a5e58.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 369 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 368 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/08/dailydogo.html" />
      <updated>2022-11-08T05:43:56Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 368 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e5830094b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 368 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          My...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/07/my-micromonday-rec.html" />
      <updated>2022-11-07T18:02:02Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/07/my-micromonday-rec.html</id>
      <content type="html">&lt;p&gt;My &lt;a href=&quot;https://micro.welltempered.net/2019/06/23/the-who-what.html&quot;&gt;MicroMonday&lt;/a&gt; rec goes to &lt;a href=&quot;https://micro.blog/baldur&quot;&gt;@baldur&lt;/a&gt; for his different viewpoint on the web dev world.&lt;/p&gt;
&lt;p&gt;Come for the different perspective on the status quo, stay for the occasional photo of Iceland.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        My MicroMonday rec goes to @baldur for his different viewpoint on the web dev world. Come for the different perspective on the status quo, stay for the occasional photo of Iceland.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 367 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/06/dailydogo.html" />
      <updated>2022-11-06T17:10:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 367 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/20c5715e85.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 367 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 366 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/05/dailydogo.html" />
      <updated>2022-11-05T18:00:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 366 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5fd1bbf78d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 366 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 365 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/04/dailydogo.html" />
      <updated>2022-11-04T19:46:51Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 365 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/34cfa21465.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 365 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 364 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/03/dailydogo.html" />
      <updated>2022-11-03T17:01:32Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 364 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6fcbd402a2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 364 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I just pledged 210$...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/02/i-just-pledged.html" />
      <updated>2022-11-02T20:23:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/02/i-just-pledged.html</id>
      <content type="html">&lt;p&gt;I just pledged 210$ for a cooperative board game that I might never play: It&#39;s &lt;a href=&quot;https://www.kickstarter.com/projects/contentiongames/slay-the-spire-the-board-game&quot;&gt;the board game version of Slay The Spire&lt;/a&gt;, maybe the only game I put as much hours into as Diablo 2 back in the day, which tells a lot. (Stellaris is a distant third, which also tells a lot).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I just pledged 210$ for a cooperative board game that I might never play: It&#39;s the board game version of Slay The Spire, maybe the only game I put as much hours into as Diablo 2 back in the day, which tells a lot. (Stellaris is a distant third, which also tells a lot).</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 363 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/02/dailydogo.html" />
      <updated>2022-11-02T15:33:47Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 363 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26dbe69d95.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 363 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Fantastic episode of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/02/fantastic-episode-of.html" />
      <updated>2022-11-02T09:37:33Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/02/fantastic-episode-of.html</id>
      <content type="html">&lt;p&gt;Fantastic episode of Upgrade this week. &lt;a href=&quot;https://micro.blog/jsnell&quot;&gt;@jsnell&lt;/a&gt; said out loud in a clear way, what I have been only hazily thinking. &lt;a href=&quot;https://www.relay.fm/upgrade/431&quot;&gt;www.relay.fm/upgrade/4...&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Fantastic episode of Upgrade this week. @jsnell said out loud in a clear way, what I have been only hazily thinking. www.relay.fm/upgrade/4...</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 362 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/11/01/dailydogo.html" />
      <updated>2022-11-01T18:19:03Z</updated>
      <id>https://blog.martin-haehnel.de/2022/11/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 362 🐶&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/44fdd3a202.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6db95e8fa4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39fc52caaf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 362 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 361 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/31/dailydogo.html" />
      <updated>2022-10-31T19:03:19Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 361 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/be7e4d0a11.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 361 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 360 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/30/dailydogo.html" />
      <updated>2022-10-30T17:15:57Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 360 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/85e2ccd723.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 360 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 359 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/29/dailydogo.html" />
      <updated>2022-10-29T18:31:43Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 359 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/82a5d51b9b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 359 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I was just out with...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/29/i-was-just.html" />
      <updated>2022-10-29T09:09:23Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/29/i-was-just.html</id>
      <content type="html">&lt;p&gt;I was just out with the dog 🐶 in the dark, grayish, cold and freezing-melting-freezing weather we have here. And even though it is dark and unfriendly outside, it didn&#39;t change my mood at all. I was just thinking about my side project, the various research avenues I want to explore in my note taking and so on. Then I noticed: What a privilege to have things to look forward to doing.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I was just out with the dog 🐶 in the dark, grayish, cold and freezing-melting-freezing weather we have here. And even though it is dark and unfriendly outside, it didn&#39;t change my mood at all. I was just thinking about my side project, the various research avenues I want to explore in my note taking and so on. Then I noticed: What a privilege to have things to look forward to doing.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 358 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/28/dailydogo.html" />
      <updated>2022-10-28T18:26:34Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 358 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/416a03951c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 358 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 357 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/27/dailydogo.html" />
      <updated>2022-10-27T17:43:26Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 357 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8a1105145e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 357 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Looking at math...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/27/looking-at-math.html" />
      <updated>2022-10-27T08:44:20Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/27/looking-at-math.html</id>
      <content type="html">&lt;p&gt;Looking at math proofs for the first time in a very long time. I wish that math would have not been such a traumatizing subject in my university time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Looking at math proofs for the first time in a very long time. I wish that math would have not been such a traumatizing subject in my university time.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 356 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/26/dailydogo.html" />
      <updated>2022-10-26T18:39:04Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 356 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad99b68373.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 356 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Lots of walking with...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/26/lots-of-walking.html" />
      <updated>2022-10-26T07:36:12Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/26/lots-of-walking.html</id>
      <content type="html">&lt;p&gt;Lots of walking with the dog  🐶 in the morning today. Therefore not a lot of &amp;quot;sitting on the computer work&amp;quot; - &lt;a href=&quot;https://blog.jim-nielsen.com/2022/what-work-looks-like/&quot;&gt;not the only type of work&lt;/a&gt; - got done.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Lots of walking with the dog 🐶 in the morning today. Therefore not a lot of &amp;quot;sitting on the computer work&amp;quot; - not the only type of work - got done.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 355 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/25/dailydogo.html" />
      <updated>2022-10-25T16:49:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 355 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3851b716ad.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 355 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 354 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/24/dailydogo.html" />
      <updated>2022-10-24T18:42:56Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 354 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/80b9bdbf01.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 354 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Previously After...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/24/previously-after-using.html" />
      <updated>2022-10-24T16:29:21Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/24/previously-after-using.html</id>
      <content type="html">&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/06/07/thoughts-on-the.html&quot;&gt;Previously&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After using my new M1 Mac Book Air and my new 11&quot; iPad Pro for some months now, I&#39;m able to judge a little better how I use these machines:&lt;/p&gt;
&lt;p&gt;First things first: The Air is the main machine. Wether it is note taking or coding, gaming or just watching youtube: I really like to use my Mac more than I like my iPad. The iPad is strictly better for cooking and is used frequently for that, but I have not used the machine to its full potential. I have noticed that I&#39;m a very stationary person and like my current desk setup (private laptop on the left, KVM-enabled Display in the middle, work laptop on the right, &lt;a href=&quot;https://ergodox-ez.com/&quot;&gt;Ergodox EZ&lt;/a&gt; as my keyboard and Logitech MX Master 3 as my mouse), which doesn&#39;t include a real place for an iPad. I rarely work on the kitchen table - the only other spot really usable for writing/sitting down to do computer things in my home. Even when I&#39;m traveling it&#39;s the laptop not the tablet that gets used.&lt;/p&gt;
&lt;p&gt;That being said I&#39;m happy about owning an iPad Pro, too. I use it frequently enough to make it worth the purchase, even if I&#39;m a light user of it. Next time around I probably would get a cheaper, more basic model. The Air is just plainly a great computer and I can&#39;t even conceive a justification for wanting more out of a private computer (which gets used for 1 to 8 hours a day, depending on if it&#39;s the weekend or free time after work).&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Previously After using my new M1 Mac Book Air and my new 11&quot; iPad Pro for some months now, I&#39;m able to judge a little better how I use these machines: First things first: The Air is the main machine. Wether it is note taking or coding, gaming or just watching youtube: I really like to use my Mac more than I like my iPad. The iPad is strictly better for cooking and is used frequently for that, but I have not used the machine to its full potential. I have noticed that I&#39;m a very stationary person and like my current desk setup (private laptop on the left, KVM-enabled Display in the middle, work laptop on the right, Ergodox EZ as my keyboard and Logitech MX Master 3 as my mouse), which doesn&#39;t include a real place for an iPad. I rarely work on the kitchen table - the only other spot really usable for writing/sitting down to do computer things in my home. Even when I&#39;m traveling it&#39;s the laptop not the tablet that gets used. That being said I&#39;m happy about owning an iPad Pro, too. I use it frequently enough to make it worth the purchase, even if I&#39;m a light user of it. Next time around I probably would get a cheaper, more basic model. The Air is just plainly a great computer and I can&#39;t even conceive a justification for wanting more out of a private computer (which gets used for 1 to 8 hours a day, depending on if it&#39;s the weekend or free time after work).

        https://blog.martin-haehnel.de/2022/10/24/previously-after-using.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 353 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/23/194359.html" />
      <updated>2022-10-23T16:43:59Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/23/194359.html</id>
      <content type="html">&lt;p&gt;DailyDogo 353 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/afb716fc3e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 353 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 352 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/23/dailydogo.html" />
      <updated>2022-10-22T22:32:30Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 352 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/28f1e7734c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 352 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 351 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/21/dailydogo.html" />
      <updated>2022-10-21T16:47:11Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 351 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3850dbeed9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 351 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 350 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/20/dailydogo.html" />
      <updated>2022-10-20T17:08:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 350 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1fab4d073c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 350 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 349 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/19/214754.html" />
      <updated>2022-10-19T18:47:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/19/214754.html</id>
      <content type="html">&lt;p&gt;DailyDogo 349 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f7d7259929.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 349 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 348 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/19/dailydogo.html" />
      <updated>2022-10-19T05:40:42Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 348 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f9ffd8e54e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 348 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 347 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/17/dailydogo.html" />
      <updated>2022-10-17T16:30:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 347 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/21ad99affb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 347 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I had a fantastic...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/17/i-had-a.html" />
      <updated>2022-10-17T14:42:38Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/17/i-had-a.html</id>
      <content type="html">&lt;p&gt;I had a fantastic day at work today. I guess I love programming? Found a way better solution to a problem I had hit my head against for a couple of weeks. The new solution (which I found while enjoying sitting in the sauna) requires less code, is also conceptually easier to understand and can be reused and adapted in the future if needed.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I had a fantastic day at work today. I guess I love programming? Found a way better solution to a problem I had hit my head against for a couple of weeks. The new solution (which I found while enjoying sitting in the sauna) requires less code, is also conceptually easier to understand and can be reused and adapted in the future if needed.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 346 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/16/dailydogo.html" />
      <updated>2022-10-16T19:33:45Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 346 🐶&lt;/p&gt;
&lt;p&gt;&lt;video controls=&quot;controls&quot; playsinline=&quot;playsinline&quot; src=&quot;https://blog.martin-haehnel.de/uploads/2022/3c40d6d753.mov&quot; width=&quot;640&quot; height=&quot;360&quot; poster=&quot;https://blog.martin-haehnel.de/uploads/2022/8cb4d2696a.png&quot; preload=&quot;none&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 346 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 345 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/15/dailydogo.html" />
      <updated>2022-10-15T18:06:31Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 345 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/424ed8119b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 345 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 344 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/14/dailydogo.html" />
      <updated>2022-10-14T16:49:49Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 344 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/07c46f068e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 344 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          A good indicator of...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/14/a-good-indicator.html" />
      <updated>2022-10-14T10:50:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/14/a-good-indicator.html</id>
      <content type="html">&lt;p&gt;A good indicator of expertise (in my case) seems to be if and what I’m willing to promise to deliver. Am I willing to do so with ease and confidence? Are there a lot of „ifs“ involved? Do I ask for an authority (like an architect or product manager) to carry (part of) the responsibility?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        A good indicator of expertise (in my case) seems to be if and what I’m willing to promise to deliver. Am I willing to do so with ease and confidence? Are there a lot of „ifs“ involved? Do I ask for an authority (like an architect or product manager) to carry (part of) the responsibility?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 343 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/13/dailydogo.html" />
      <updated>2022-10-13T17:09:42Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 343 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4b9fc1fbbd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 343 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 342 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/12/dailydogo.html" />
      <updated>2022-10-12T19:52:02Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 342 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1e50abe2dd.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 342 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 341 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/11/205213.html" />
      <updated>2022-10-11T17:52:13Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/11/205213.html</id>
      <content type="html">&lt;p&gt;DailyDogo 341 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3f74439ae3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 341 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 340 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/11/dailydogo.html" />
      <updated>2022-10-11T07:35:25Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 340 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7d98e1e1e6.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 340 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 339 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/09/dailydogo.html" />
      <updated>2022-10-09T16:21:25Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 339 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9aa55c1225.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 339 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Are there any...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/08/are-there-any.html" />
      <updated>2022-10-08T19:11:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/08/are-there-any.html</id>
      <content type="html">&lt;p&gt;Are there any non-clickbait-y games news sites?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Are there any non-clickbait-y games news sites?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 338 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/08/dailydogo.html" />
      <updated>2022-10-08T18:41:00Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 338 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b3d0c945f3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 338 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 337 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/07/dailydogo.html" />
      <updated>2022-10-07T18:19:14Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 337 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/336e6a4bc3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 337 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I think this is an...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/07/i-think-this.html" />
      <updated>2022-10-07T08:40:38Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/07/i-think-this.html</id>
      <content type="html">&lt;p&gt;I think this is an incredibly well done piece of product communication. When I&#39;m a grown up, I would want to work in a team like the one that works on vs code: &lt;a href=&quot;https://github.com/microsoft/vscode/issues/160806&quot;&gt;github.com/microsoft...&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I think this is an incredibly well done piece of product communication. When I&#39;m a grown up, I would want to work in a team like the one that works on vs code: github.com/microsoft...</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 336 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/06/dailydogo.html" />
      <updated>2022-10-06T16:57:11Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 336 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8f0259c2de.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 336 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 335 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/05/dailydogo.html" />
      <updated>2022-10-05T17:38:57Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 335 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c80ce85742.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 335 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 334 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/04/dailydogo.html" />
      <updated>2022-10-04T18:01:16Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 334 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/76b675dead.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 334 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 333 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/03/dailydogo.html" />
      <updated>2022-10-03T16:24:03Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 333 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1821cc69da.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 333 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 332 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/02/dailydogo.html" />
      <updated>2022-10-02T17:07:23Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 332 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d60f2eaed.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 332 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 331 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/10/01/dailydogo.html" />
      <updated>2022-10-01T17:01:58Z</updated>
      <id>https://blog.martin-haehnel.de/2022/10/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 331 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a138af3ee.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 331 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 330 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/30/dailydogo.html" />
      <updated>2022-09-29T22:04:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 330 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/56f7337f75.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 330 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 329 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/28/dailydogo.html" />
      <updated>2022-09-28T18:35:35Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 329 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/53333643f3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 329 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The dog has kept me...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/28/the-dog-has.html" />
      <updated>2022-09-28T05:05:44Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/28/the-dog-has.html</id>
      <content type="html">&lt;p&gt;The dog has kept me pretty active the last few days… 🐶😅&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d911fd2955.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        The dog has kept me pretty active the last few days… 🐶😅</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 328 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/27/dailydogo.html" />
      <updated>2022-09-27T16:14:43Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 328 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3962cd799d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 328 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 327 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/26/dailydogo.html" />
      <updated>2022-09-26T18:02:35Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 327 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/a89d967793.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 327 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 326 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/25/dailydogo.html" />
      <updated>2022-09-25T18:31:42Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 326 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2b409b67dc.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 326 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 325 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/24/dailydogo.html" />
      <updated>2022-09-24T19:21:48Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 325 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c83600036d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 325 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 324 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/23/dailydogo.html" />
      <updated>2022-09-23T18:40:01Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 324 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/dab93d75e1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 324 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 323 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/22/dailydogo.html" />
      <updated>2022-09-22T20:00:11Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 323 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/cbc3518093.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 323 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          After three months...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/22/after-three-months.html" />
      <updated>2022-09-22T09:45:19Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/22/after-three-months.html</id>
      <content type="html">&lt;p&gt; &lt;/p&gt;
&lt;p&gt;After three months with &lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html&quot;&gt;Agenda&lt;/a&gt;, which is still a very good app, I’m back with &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; for &lt;a href=&quot;https://blog.martin-haehnel.de/2022/07/18/the-three-types.html&quot;&gt;all the types of notes that I take&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/stock-is-better.html&quot;&gt;I sang the praises&lt;/a&gt; of not having to maintain my setup and instead use apps in the most default way possible recently: Let others deal with the maintenance of the features and use the provided way of doing things, instead of figuring everything out on my own.&lt;/p&gt;
&lt;p&gt;This sounds good, however, I discovered I had to use a lot of energy to keep things that are important to me going.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Taking durable notes about my work almost didn’t happen anymore&lt;/li&gt;
&lt;li&gt;Writing up what had happened during the week by distilling down my daily notes became too much of a chore&lt;/li&gt;
&lt;li&gt;Taking notes on read materials, let alone reading challenging materials, just didn’t happen as much&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In hindsight, I also noticed that my posts about what apps to use and how to use them were a symptom of the necessity of constantly having to reframe my approach to be okay with not switching back to Obsidian.&lt;/p&gt;
&lt;p&gt;To switch from one app for journaling to another for more serious note taking proofed to be too big of a context switch as well. I didn’t “live” in my notes as much as I like to do.&lt;/p&gt;
&lt;p&gt;Another big reason for being fine with paying the price of maintaining things myself is the recent development of Obsidian: it now supports multiple windows, something that Agenda lacks and something that makes distilling a bunch of notes into a new one pretty hard.&lt;/p&gt;
&lt;p&gt;Finally, I think that working on plugins for Obsidian is a way to lessen the load of maintenance and - since I’m a developer - a way to actually gain some expertise. So in my case, it is not a terrible investment of time and effort.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        After three months with Agenda, which is still a very good app, I’m back with Obsidian for all the types of notes that I take. I sang the praises of not having to maintain my setup and instead use apps in the most default way possible recently: Let others deal with the maintenance of the features and use the provided way of doing things, instead of figuring everything out on my own. This sounds good, however, I discovered I had to use a lot of energy to keep things that are important to me going. Taking durable notes about my work almost didn’t happen anymore Writing up what had happened during the week by distilling down my daily notes became too much of a chore Taking notes on read materials, let alone reading challenging materials, just didn’t happen as much In hindsight, I also noticed that my posts about what apps to use and how to use them were a symptom of the necessity of constantly having to reframe my approach to be okay with not switching back to Obsidian. To switch from one app for journaling to another for more serious note taking proofed to be too big of a context switch as well. I didn’t “live” in my notes as much as I like to do. Another big reason for being fine with paying the price of maintaining things myself is the recent development of Obsidian: it now supports multiple windows, something that Agenda lacks and something that makes distilling a bunch of notes into a new one pretty hard. Finally, I think that working on plugins for Obsidian is a way to lessen the load of maintenance and - since I’m a developer - a way to actually gain some expertise. So in my case, it is not a terrible investment of time and effort.

        https://blog.martin-haehnel.de/2022/09/22/after-three-months.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 322 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/21/dailydogo.html" />
      <updated>2022-09-21T16:21:25Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 322 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/087fe48f1e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 322 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 321 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/20/dailydogo.html" />
      <updated>2022-09-20T17:01:19Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 321 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d706b5602e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 321 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 320 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/19/201453.html" />
      <updated>2022-09-19T17:14:53Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/19/201453.html</id>
      <content type="html">&lt;p&gt;DailyDogo 320 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/59c2c874ea.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 320 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Dreaming of the day...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/19/dreaming-of-the.html" />
      <updated>2022-09-19T07:21:20Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/19/dreaming-of-the.html</id>
      <content type="html">&lt;p&gt;Dreaming of the day when we can just download our whole microblog (posts, designs, etc.) so we can interact with it locally and upload it through Git or something like that.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Dreaming of the day when we can just download our whole microblog (posts, designs, etc.) so we can interact with it locally and upload it through Git or something like that.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (I didn&#39;t post...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/19/i-didnt-post.html" />
      <updated>2022-09-19T07:19:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/19/i-didnt-post.html</id>
      <content type="html">&lt;p&gt;(I didn&#39;t post DailyDogo pics the last two days, for some reason. Streak fixed!)&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (I didn&#39;t post DailyDogo pics the last two days, for some reason. Streak fixed!) #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 319 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/19/101841.html" />
      <updated>2022-09-19T07:18:41Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/19/101841.html</id>
      <content type="html">&lt;p&gt;DailyDogo 319 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3a99e81270.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 319 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 318 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/19/dailydogo.html" />
      <updated>2022-09-19T07:17:56Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 318 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/33df1ef637.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 318 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 317 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/16/dailydogo.html" />
      <updated>2022-09-16T18:00:57Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 317 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ad5caa7736.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 317 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 316 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/15/dailydogo.html" />
      <updated>2022-09-15T16:16:10Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 316 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/022a36bc4d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 316 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          I recently tried...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/15/i-recently-tried.html" />
      <updated>2022-09-15T08:13:23Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/15/i-recently-tried.html</id>
      <content type="html">&lt;p&gt;I recently tried &lt;a href=&quot;https://www.sortedapp.com&quot;&gt;Sorted&lt;/a&gt;, a &quot;hyper-scheduler&quot;, which is just a fancy task manager that will automatically schedule my tasks around the events for the current day, giving me a clear picture of what, based on my own estimates, I will be able to do.&lt;/p&gt;
&lt;p&gt;As great as this sounds, software development is notorious for being hard to estimate, which means that it didn&#39;t make much sense to schedule my whole day in this way.&lt;/p&gt;
&lt;p&gt;I was interested in an app like this, because it seemed to be a digital cousin of the &lt;a href=&quot;https://www.timeblockplanner.com&quot;&gt;time blocking practice&lt;/a&gt; that Cal Newport employs to get more focused work done, which I also tried for a while but lead to a similar result: I am lucky enough to actually do important work. What I&#39;m struggling with is too much scaffolding.&lt;/p&gt;
&lt;p&gt;Now, I also know about the willpower/structure problem: Relying on willpower to do something is bound to fail in the long run, whereas putting structures in place that foster me to do the right thing, if I want it or not, is the sustainable choice.&lt;/p&gt;
&lt;p&gt;But: Even structures like task managers can be or become a source of ego depletion, which is exactly the opposite of what they are supposed to be.&lt;/p&gt;
&lt;p&gt;And so I strive for a kind of intuitive and mostly maintenance-free productivity setup: Give me a structured writing surface like &lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html&quot;&gt;Agenda&lt;/a&gt; (Agenda is a very nice garbage bin for notes that don&#39;t really matter), remind me to do things when it is absolutely necessary by using &lt;a href=&quot;https://blog.martin-haehnel.de/2022/01/22/good-apps-due.html&quot;&gt;Due&lt;/a&gt;. Otherwise either rely on the project management tools at work (tickets and kanban board) or use Reminders to make sure that things that need to be done but are not work in progress and/or are not work related won&#39;t be forgotten.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        I recently tried Sorted, a &quot;hyper-scheduler&quot;, which is just a fancy task manager that will automatically schedule my tasks around the events for the current day, giving me a clear picture of what, based on my own estimates, I will be able to do. As great as this sounds, software development is notorious for being hard to estimate, which means that it didn&#39;t make much sense to schedule my whole day in this way. I was interested in an app like this, because it seemed to be a digital cousin of the time blocking practice that Cal Newport employs to get more focused work done, which I also tried for a while but lead to a similar result: I am lucky enough to actually do important work. What I&#39;m struggling with is too much scaffolding. Now, I also know about the willpower/structure problem: Relying on willpower to do something is bound to fail in the long run, whereas putting structures in place that foster me to do the right thing, if I want it or not, is the sustainable choice. But: Even structures like task managers can be or become a source of ego depletion, which is exactly the opposite of what they are supposed to be. And so I strive for a kind of intuitive and mostly maintenance-free productivity setup: Give me a structured writing surface like Agenda (Agenda is a very nice garbage bin for notes that don&#39;t really matter), remind me to do things when it is absolutely necessary by using Due. Otherwise either rely on the project management tools at work (tickets and kanban board) or use Reminders to make sure that things that need to be done but are not work in progress and/or are not work related won&#39;t be forgotten.

        https://blog.martin-haehnel.de/2022/09/15/i-recently-tried.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 315 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/14/dailydogo.html" />
      <updated>2022-09-14T16:40:02Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 315 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2801c4aac2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 315 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 314 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/13/dailydogo.html" />
      <updated>2022-09-13T19:15:08Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 314 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d5118b3da3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 314 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 313 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/12/dailydogo.html" />
      <updated>2022-09-12T17:12:45Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 313 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/49bcacb64b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 313 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          In an effort to make...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/12/in-an-effort.html" />
      <updated>2022-09-12T08:19:43Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/12/in-an-effort.html</id>
      <content type="html">&lt;p&gt;In an effort to make my blog perform better - lots of images means slow load times - I have updated all my images to use this somewhat undocumented micro.blog feature that resizes images:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Micro.blog offers an endpoint to resize uploaded images. Once you upload the image, if you do [micro.blog/photos/](https://micro.blog/photos/#)##x/, but replace ### with the pixel width you want, followed by the full URL to the image, you’ll show an image with that width. For example, if I wanted the image at [json.blog/foo.jpg](https://json.blog/foo.jpg) to be 480px wide, I could use &amp;lt;img src=“https://micro.blog/photos/480x/[json.blog/foo.jpg](https://json.blog/foo.jpg)”&amp;gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://help.micro.blog/t/optimal-image-size-resolution/427/2&quot;&gt;@jsonbecker in the Micro.Blog Forums&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This first page load still takes a long while, since my home page weighs in at about 25 mb of mostly image data. But it&#39;s a start.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        In an effort to make my blog perform better - lots of images means slow load times - I have updated all my images to use this somewhat undocumented micro.blog feature that resizes images: Micro.blog offers an endpoint to resize uploaded images. Once you upload the image, if you do [micro.blog/photos/](https://micro.blog/photos/#)##x/, but replace ### with the pixel width you want, followed by the full URL to the image, you’ll show an image with that width. For example, if I wanted the image at [json.blog/foo.jpg](https://json.blog/foo.jpg) to be 480px wide, I could use &amp;lt;img src=“https://micro.blog/photos/480x/[json.blog/foo.jpg](https://json.blog/foo.jpg)”&amp;gt;. @jsonbecker in the Micro.Blog Forums This first page load still takes a long while, since my home page weighs in at about 25 mb of mostly image data. But it&#39;s a start.

        https://blog.martin-haehnel.de/2022/09/12/in-an-effort.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 312 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/11/dailydogo.html" />
      <updated>2022-09-11T16:38:04Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 312 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/61a19d5071.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 312 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 311 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/10/dailydogo.html" />
      <updated>2022-09-10T16:07:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 311 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/244ca25547.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 311 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Nicht jedes Scheitern ist tatsächliches Scheitern



        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/10/nicht-jedes-scheitern.html" />
      <updated>2022-09-10T14:16:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/10/nicht-jedes-scheitern.html</id>
      <content type="html">&lt;p&gt;Wichtiges Konzept: Zu unterscheiden, ob das Ausbleiben einer Handlung, die man sich vorgenommen hatte, um damit ein Ziel voranzutreiben am Ende Scheitern ist, oder nicht. Letzteres kann der Fall sein, wenn sich herausstellt, dass die Handlung nicht (oder nicht mehr) zum Ziel beiträgt.&lt;/p&gt;
&lt;p&gt;Wenn das eigene Task-Management-System zu schwergewichtig ist und z. B. aus zu vielen wiederkehrenden Aufgaben und Wartungstätigkeiten besteht, so dass die Aufrechterhaltung des Systems selbst den Hauptteil des Arbeitsaufwandes ausmacht, dann ist die Nichtdurchführung der Wartungstätigkeiten kein Scheitern, sondern notwendig, um dem Ziel näher zu kommen, obwohl man das System einst zum Erreichen des selben Ziels aufgebaut hatte.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Nicht jedes Scheitern ist tatsächliches Scheitern

        https://blog.martin-haehnel.de/2022/09/10/nicht-jedes-scheitern.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 310 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/09/dailydogo.html" />
      <updated>2022-09-09T16:36:37Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 310 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4c1bfe45f8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 310 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 309 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/08/dailydogo.html" />
      <updated>2022-09-08T18:00:44Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 309 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8723d53f62.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 309 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 308 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/07/dailydogo.html" />
      <updated>2022-09-07T17:33:32Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 308 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/98964679a4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 308 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 307 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/06/dailydogo.html" />
      <updated>2022-09-06T17:00:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 307 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ee115c9232.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 307 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 306 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/05/dailydogo.html" />
      <updated>2022-09-05T16:17:40Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 306 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/40ccfb841d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 306 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Anybody here with...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/04/anybody-here-with.html" />
      <updated>2022-09-04T20:47:58Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/04/anybody-here-with.html</id>
      <content type="html">&lt;p&gt;Anybody here with experience using the stoic. app for guided journaling? I’ve used it for four days now and like it so far. Anybody else?&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Anybody here with experience using the stoic. app for guided journaling? I’ve used it for four days now and like it so far. Anybody else?</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 305 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/04/dailydogo.html" />
      <updated>2022-09-04T20:19:05Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 305 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/840bc246a1.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 305 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 304 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/03/dailydogo.html" />
      <updated>2022-09-03T17:35:04Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 304 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/fcd154526c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 304 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 303 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/02/dailydogo.html" />
      <updated>2022-09-02T16:21:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 303 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c5b7b781aa.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 303 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 302 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/09/01/dailydogo.html" />
      <updated>2022-09-01T16:11:40Z</updated>
      <id>https://blog.martin-haehnel.de/2022/09/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 302 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4f86ddaf8b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 302 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 301 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/31/dailydogo.html" />
      <updated>2022-08-31T18:39:06Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 301 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bcd68eca3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 301 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 300 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/30/dailydogo.html" />
      <updated>2022-08-30T16:00:44Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 300 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/cb32dbf3c0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 300 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 299 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/29/dailydogo.html" />
      <updated>2022-08-29T16:11:09Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/29/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 299 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d52f0d244d.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 299 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Not a lot of sleep...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/29/not-a-lot.html" />
      <updated>2022-08-29T08:50:29Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/29/not-a-lot.html</id>
      <content type="html">&lt;p&gt;Not a lot of sleep tonight, because the dogo needed to go out at 6 (I was in bed around 1, which is very late for me). I feel nauseous and threw up a little, because of an unclean thermo mug, I think (dishwasher didn&#39;t run correctly). The cascading effects of a bad (yester)day…&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Not a lot of sleep tonight, because the dogo needed to go out at 6 (I was in bed around 1, which is very late for me). I feel nauseous and threw up a little, because of an unclean thermo mug, I think (dishwasher didn&#39;t run correctly). The cascading effects of a bad (yester)day…</echofeed:content>
    </entry>
    <entry>
      <title>
        
          (I’ll try to post a...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/29/ill-try-to.html" />
      <updated>2022-08-28T21:45:09Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/29/ill-try-to.html</id>
      <content type="html">&lt;p&gt;(I’ll try to post a little more this week to see if I like it)&lt;/p&gt;
&lt;p&gt;Difficult to get myself going this afternoon. Just sat around and kind of unintentionally „relaxed“ by watching YouTube and playing video games. Would have been nice to actually decide to do that but instead the day felt lost. Didn’t do anything I wanted and what I did I did without being really there.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        (I’ll try to post a little more this week to see if I like it) Difficult to get myself going this afternoon. Just sat around and kind of unintentionally „relaxed“ by watching YouTube and playing video games. Would have been nice to actually decide to do that but instead the day felt lost. Didn’t do anything I wanted and what I did I did without being really there.</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 298 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/28/dailydogo.html" />
      <updated>2022-08-28T17:56:45Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 298 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/8d0e8f0c7c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 298 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 297 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/27/dailydogo.html" />
      <updated>2022-08-27T19:01:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/27/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 297 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/77c58398c5.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 297 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 296 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/26/dailydogo.html" />
      <updated>2022-08-26T18:21:07Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 296 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c18b781977.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 296 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 295 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/25/dailydogo.html" />
      <updated>2022-08-25T20:58:30Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 295 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f37cbc9b41.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 295 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 294 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/24/dailydogo.html" />
      <updated>2022-08-24T17:42:52Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 294 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/45fcb6909b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 294 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 293 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/23/dailydogo.html" />
      <updated>2022-08-23T16:01:43Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 293 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3e2590ddf9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 293 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Stock Is Better



        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/22/stock-is-better.html" />
      <updated>2022-08-22T16:50:00Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/22/stock-is-better.html</id>
      <content type="html">&lt;p&gt;The best feature is one that is provided and maintained by the platform. A feature that can be built using an API or through extensions/plugins is of course better than a feature that does not exist all. But: Building a feature means maintaining a feature.&lt;/p&gt;
&lt;p&gt;An example: You can cobble together a functioning journaling/project notes solution, with daily, weekly and other periodic notes in &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; (using a handful of plugins and a carefully thought through file organization scheme). That works. You just have to remember how everything works the next time you touch that part of your setup. And hope that nothing breaks, between those loosely coupled building blocks and the next update. Or you could just use &lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html&quot;&gt;Agenda&lt;/a&gt;. Is Agenda perfect? No. But it is much more well suited out of the box for this kind of note taking.&lt;/p&gt;
&lt;p&gt;There is also a risk of drift: If you&#39;re trying to organize your notes, you probably don&#39;t do so just for the sake of it, but because you try to become better at doing other things. The notes and also the notes setup are just helping to accomplish a task at hand. If your setup is complicated and some parts are even written by yourself, you might end up accomplishing everything else but the task you set out to check off in the first place.&lt;/p&gt;
&lt;p&gt;Therefore, when I try to improve my current system, I always look for ways to use a less customized system. The more stock features I use the better. The burden of maintaining those features lies with the app developer.&lt;/p&gt;
&lt;p&gt;Of course, there will be lots of cases where a feature just doesn&#39;t exist. In that case I try to live without this feature first. Maybe I don&#39;t need it as much as I first thought. If I can&#39;t live without it, I look for a plugin solution, again, to lessen the maintenance load on myself. I have to be aware, that I may not need to maintain the plugin providing the feature, but I am now responsible to make it all work, i.e. the burden of maintenance of the integration of plugin and setup lies with me.&lt;/p&gt;
&lt;p&gt;Finally, I might write a plugin, script or customize an existing piece of code to make it do what I need it to do, but this is really a last resort. Very often this is not worth the time.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Stock Is Better

        https://blog.martin-haehnel.de/2022/08/22/stock-is-better.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Good Apps - Agenda



        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html" />
      <updated>2022-08-22T16:50:00Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html</id>
      <content type="html">&lt;p&gt;For a while I used &lt;a href=&quot;https://blog.martin-haehnel.de/2022/02/27/good-apps-obsidian.html&quot;&gt;Obsidian&lt;/a&gt; to contain all kinds of notes I take: &lt;a href=&quot;https://blog.martin-haehnel.de/2022/07/18/the-three-types.html&quot;&gt;timeless notes, project notes and journal notes&lt;/a&gt;. Now that I have discovered &lt;a href=&quot;https://agenda.com&quot;&gt;Agenda&lt;/a&gt; I keep my project and journal notes there instead.&lt;/p&gt;
&lt;p&gt;Agenda is great for notes, that are transitory in nature. I am a person who needs a writing surface to think and Agenda makes it easy to keep a somewhat ordered writing environment. One thing I really like about it: It makes it very easy to keep periodic notes, &lt;a href=&quot;https://blog.martin-haehnel.de/2022/08/22/stock-is-better.html&quot;&gt;without me having to maintain a custom system&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;EDIT: &lt;a href=&quot;https://blog.martin-haehnel.de/2022/09/22/after-three-months.html&quot;&gt;I&#39;m back with Obsidian for my journal notes.&lt;/a&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Good Apps - Agenda

        https://blog.martin-haehnel.de/2022/08/22/good-apps-agenda.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 292 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/22/dailydogo.html" />
      <updated>2022-08-22T16:26:01Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 292 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ec823736be.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 292 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 291 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/21/dailydogo.html" />
      <updated>2022-08-21T16:02:35Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 291 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1ff7ced99f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 291 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 290 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/20/dailydogo.html" />
      <updated>2022-08-20T16:06:55Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 290 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/12f7155a93.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 290 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 289 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/19/193218.html" />
      <updated>2022-08-19T16:32:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/19/193218.html</id>
      <content type="html">&lt;p&gt;DailyDogo 289 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/355685c8d4.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 289 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 288 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/19/dailydogo.html" />
      <updated>2022-08-19T05:00:09Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 288 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7339b5d012.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 288 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 287 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/17/dailydogo.html" />
      <updated>2022-08-17T17:46:47Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 287 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e834306584.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 287 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 286 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/16/dailydogo.html" />
      <updated>2022-08-16T19:10:54Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 286 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9a87290c9f.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 286 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 285 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/15/dailydogo.html" />
      <updated>2022-08-15T18:44:33Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/15/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 285 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d84da8ae81.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 285 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 284 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/14/dailydogo.html" />
      <updated>2022-08-14T16:21:47Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 284 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f872ac77a8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 284 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 283 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/13/dailydogo.html" />
      <updated>2022-08-13T19:37:36Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 283 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/2a0dd69cdf.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 283 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 282 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/12/dailydogo.html" />
      <updated>2022-08-12T17:30:16Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 282 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/f00414d2b9.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 282 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 281 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/11/201218.html" />
      <updated>2022-08-11T17:12:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/11/201218.html</id>
      <content type="html">&lt;p&gt;DailyDogo 281 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/bdb137c228.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 281 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 280 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/11/dailydogo.html" />
      <updated>2022-08-10T21:24:05Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 280 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26c9ec7dc7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 280 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 279 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/09/dailydogo.html" />
      <updated>2022-08-09T16:43:21Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/09/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 279 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/d395fd8aa3.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 279 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 278 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/08/dailydogo.html" />
      <updated>2022-08-08T17:03:21Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 278 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/55d87983d2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 278 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 277 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/07/dailydogo.html" />
      <updated>2022-08-07T17:48:16Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/07/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 277 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/23f2ae2f1a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 277 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 276 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/06/dailydogo.html" />
      <updated>2022-08-06T17:09:00Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/06/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 276 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ff59e8978a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 276 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 275 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/05/dailydogo.html" />
      <updated>2022-08-05T19:23:03Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/05/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 275 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/36d4409cf7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 275 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 274 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/04/dailydogo.html" />
      <updated>2022-08-04T16:46:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/04/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 274 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/35bf4cffcb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 274 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 273 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/03/dailydogo.html" />
      <updated>2022-08-03T16:54:11Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/03/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 273 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e89012cf84.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 273 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 272 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/02/dailydogo.html" />
      <updated>2022-08-02T16:37:38Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/02/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 272 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/0a6a9d1e13.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 272 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 271 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/08/01/dailydogo.html" />
      <updated>2022-08-01T16:50:45Z</updated>
      <id>https://blog.martin-haehnel.de/2022/08/01/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 271 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c2f28373ac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 271 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 270 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/31/dailydogo.html" />
      <updated>2022-07-31T16:01:02Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/31/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 270 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/6ef9a24dfb.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 270 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 269 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/30/201558.html" />
      <updated>2022-07-30T17:15:58Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/30/201558.html</id>
      <content type="html">&lt;p&gt;DailyDogo 269 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/e13fdda69e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 269 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 268 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/30/dailydogo.html" />
      <updated>2022-07-30T05:26:31Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/30/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 268 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/88931cd89e.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 268 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 267 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/28/191113.html" />
      <updated>2022-07-28T16:11:13Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/28/191113.html</id>
      <content type="html">&lt;p&gt;DailyDogo 267 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c6fc38dc2a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 267 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 266 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/28/dailydogo.html" />
      <updated>2022-07-28T05:32:50Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/28/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 266 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/91cc6b0395.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 266 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 265 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/26/dailydogo.html" />
      <updated>2022-07-26T17:03:27Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/26/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 265 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/99a71c23d7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 265 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 264 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/25/dailydogo.html" />
      <updated>2022-07-25T19:22:40Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/25/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 264 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/017af8bdac.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 264 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 263 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/24/dailydogo.html" />
      <updated>2022-07-24T17:10:34Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/24/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 263 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/65c123e5c2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 263 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 262 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/23/dailydogo.html" />
      <updated>2022-07-23T16:33:48Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/23/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 262 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/b134dbfa92.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 262 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 261 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/22/dailydogo.html" />
      <updated>2022-07-22T16:45:57Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/22/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 261 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ada87d73d8.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 261 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 260 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/21/dailydogo.html" />
      <updated>2022-07-21T16:13:37Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/21/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 260 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/9db315927a.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 260 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 259 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/20/dailydogo.html" />
      <updated>2022-07-20T18:05:53Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/20/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 259 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c3d7afb6c2.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 259 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 258 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/19/dailydogo.html" />
      <updated>2022-07-19T16:28:49Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/19/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 258 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/7daa072191.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 258 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 257 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/18/dailydogo.html" />
      <updated>2022-07-18T17:07:42Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/18/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 257 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/ceebee6d32.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 257 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          The three types of notes I take



        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/18/the-three-types.html" />
      <updated>2022-07-18T14:34:37Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/18/the-three-types.html</id>
      <content type="html">&lt;p&gt;My note taking system consists of three different pieces:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Timeless notes: Ideas, thoughts, etc. that are interlinked and are not time sensitive. These are often literally the base of knowledge from which I work. Here I try to distill what I have learned and try to push myself toward the new and the more generalized.&lt;/li&gt;
&lt;li&gt;Project notes: Status quos, todos and thoughts related to ongoing projects or tasks that have some kind of momentum but are more ephemeral than timeless notes.&lt;/li&gt;
&lt;li&gt;Journal notes: Notes that record what is happening or has happened so that I have a written record of aspects of my lived life.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Types 2 and 3 are very much related, although different in the sense, that a type 2 note is not necessarily interesting enough to be mentioned in a type 3 note. And a type 3 note is not so concerned with creating or maintaining momentum, but more with creating a record of what happened.&lt;/p&gt;
&lt;p&gt;Type one notes are different in the sense that they should be more interlinked and add up to trees of notes that in turn act serendipity-enhancing on the interface between thinking and writing (including coding). You want to treat those kinds of notes differently and keep them separate. This is where the good stuff lives. Insights from type 2 and 3 notes might end up becoming a type 1 note.&lt;/p&gt;
&lt;p&gt;A type 1 note is not the place to keep a record, though. It represents my latest stance on a topic, the latest formulation of an idea. They exist to be refactored and to be changed in any way that seems appropriate.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        The three types of notes I take

        https://blog.martin-haehnel.de/2022/07/18/the-three-types.html</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 256 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/17/dailydogo.html" />
      <updated>2022-07-17T16:17:22Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/17/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 256 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/26a184a6f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 256 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 255 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/16/192249.html" />
      <updated>2022-07-16T16:22:49Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/16/192249.html</id>
      <content type="html">&lt;p&gt;DailyDogo 255 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/3bde814a59.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 255 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 254 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/16/dailydogo.html" />
      <updated>2022-07-16T03:48:31Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/16/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 254 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/4cebc6ecb0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 254 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 253 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/14/dailydogo.html" />
      <updated>2022-07-14T19:02:14Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/14/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 253 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/5d50215c92.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 253 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 252 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/13/dailydogo.html" />
      <updated>2022-07-13T20:28:38Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/13/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 252 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/96f8be313c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 252 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 251 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/12/dailydogo.html" />
      <updated>2022-07-12T20:30:14Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/12/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 251 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/1baac00009.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 251 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 250 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/11/dailydogo.html" />
      <updated>2022-07-11T17:58:28Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/11/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 250 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c31f63373b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 250 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 249 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/10/213437.html" />
      <updated>2022-07-10T18:34:37Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/10/213437.html</id>
      <content type="html">&lt;p&gt;DailyDogo 249 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c1460ff3f0.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 249 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 248 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/10/dailydogo.html" />
      <updated>2022-07-09T21:12:05Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/10/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 248 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c263f700c7.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 248 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 247 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/08/dailydogo.html" />
      <updated>2022-07-08T17:31:24Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/08/dailydogo.html</id>
      <content type="html">&lt;p&gt;DailyDogo 247 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/c9a98b6c5c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 247 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 246 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/190814.html" />
      <updated>2022-07-07T16:08:14Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/190814.html</id>
      <content type="html">&lt;p&gt;DailyDogo 246 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/18d9ee8ada.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 246 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          Phew! And with that...
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/phew-and-with.html" />
      <updated>2022-07-07T10:29:39Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/phew-and-with.html</id>
      <content type="html">&lt;p&gt;Phew! And with that the DailyDogo streak is repaired and more regularly scheduled posting will return. Many of the photos are curtesy of my partner and best friend E. Who took care of the little whirlwind alone while I was in Germany, visiting family.&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        Phew! And with that the DailyDogo streak is repaired and more regularly scheduled posting will return. Many of the photos are curtesy of my partner and best friend E. Who took care of the little whirlwind alone while I was in Germany, visiting family. #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 245 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/132424.html" />
      <updated>2022-07-07T10:24:24Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/132424.html</id>
      <content type="html">&lt;p&gt;DailyDogo 245 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/16c7e3938b.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 245 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 244 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/132215.html" />
      <updated>2022-07-07T10:22:15Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/132215.html</id>
      <content type="html">&lt;p&gt;DailyDogo 244 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=320&amp;format=webp 320w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=640&amp;format=webp 640w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=1400&amp;format=webp 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;source type=&quot;image/jpeg&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;img alt=&quot;&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; src=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=320&amp;format=jpeg&quot; width=&quot;1400&quot; height=&quot;undefined&quot; srcset=&quot;https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=320&amp;format=jpeg 320w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=640&amp;format=jpeg 640w, https://blog.martin-haehnel.de/media/uploads/2022/39c0044f3c.jpg?w=1400&amp;format=jpeg 1400w&quot; sizes=&quot;(max-width: 640px) 100vw, (max-width: 1024px) 80vw, 1400px&quot;&gt;&lt;/picture&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 244 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 243 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/132059.html" />
      <updated>2022-07-07T10:20:59Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/132059.html</id>
      <content type="html">&lt;p&gt;DailyDogo 243 🐶&lt;/p&gt;
&lt;p&gt;&lt;video controls=&quot;controls&quot; playsinline=&quot;playsinline&quot; src=&quot;https://blog.martin-haehnel.de/uploads/2022/12f298f18a.mov&quot; width=&quot;360&quot; height=&quot;640&quot; poster=&quot;https://blog.martin-haehnel.de/uploads/2022/4cdbad2017.png&quot; preload=&quot;none&quot;&gt;&lt;/video&gt;&lt;/p&gt;
</content>
      
      <echofeed:content type="html">
        DailyDogo 243 🐶 #corgi</echofeed:content>
    </entry>
    <entry>
      <title>
        
          DailyDogo 242 🐶
        
      </title>
      <link href="https://blog.martin-haehnel.de/2022/07/07/131918.html" />
      <updated>2022-07-07T10:19:18Z</updated>
      <id>https://blog.martin-haehnel.de/2022/07/07/131918.html</id>
      <content type="html">&lt;p&gt;DailyDogo 242 🐶&lt;/p&gt;
&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://blog.martin-haehnel.de/