<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Mia Heidenstedt</title><link>https://heidenstedt.org/posts/</link><description>Recent
content
in Posts on Mia Heidenstedt</description><generator>
Hugo</generator><language>en</language><lastBuildDate>Fri, 17 Apr 2026 14:45:47 +0000</lastBuildDate><atom:link href="https://heidenstedt.org/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>AI-Assisted Cognition Endangers Human Development</title><link>https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/</link><pubDate>Wed, 15 Apr 2026 17:30:54 +0200</pubDate><guid>https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>Cognition with the help of AI is already a significant force in our world<sup id="fnref:1"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, resulting in humanity-sized missed opportunities and risks. In this article, we will explore the risks of AI-assisted cognition and how to use these tools without falling into the trap of intellectual stagnation.</p>
<h2 id="what-is-ai-assisted-cognition"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#what-is-ai-assisted-cognition">What is AI-Assisted Cognition</a></h2><p>To understand what AI-assisted cognition is, we first need to understand what cognition is.</p>
<blockquote>
<p>&ldquo;Cognitions are mental processes that deal with knowledge. They encompass psychological activities that acquire, store, retrieve, transform, or apply information. Cognitions are a pervasive part of mental life, helping individuals understand and interact with the world.&rdquo; <a href="https://en.wikipedia.org/wiki/Cognition">Q: Wikipedia</a></p>
</blockquote>
<p>Cognition can be assisted by external static information or external cognition.<br>
For example, most people would put a book into the category of external static information and a discussion about a topic with another human, because humans think and process information themselves, into the external cognition category.</p>
<p>But where do discussions with AIs fit in? They are able to process information that can result in original solutions<sup id="fnref:2"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, but they are still static and currently cannot learn<sup id="fnref:3"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<h2 id="how-ai-decelerates-the-evolution-of-ideas-culture-and-knowledge"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#how-ai-decelerates-the-evolution-of-ideas-culture-and-knowledge">How AI decelerates the evolution of ideas, culture and knowledge</a></h2><p>In early 2026, the USA <a href="https://en.wikipedia.org/wiki/Greenland_crisis#:~:text=Trump%20ordered%20the%20Joint%20Special%20Operations%20Command%20to%20make%20plans%20for%20what%20he%20called%20a%20%22possible%20invasion%20of%20Greenland%22.">prepared to invade</a> Greenland and, therefore, the EU<sup id="fnref:4"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>. Only a few months prior to that it was completely unthinkable that the USA would even think about threatening an invasion of Greenland. As AI base models are stuck in the past, they do not easily accept these events as real and often label them as &ldquo;hypothetical&rdquo;, <a href="https://www.reddit.com/r/LocalLLaMA/comments/1qagaaq/qwen_cutoff_date_makes_our_current_reality_too/">&ldquo;fake news&rdquo;, or &ldquo;impossible&rdquo;</a>. This also affects new models like Gemini 3 Pro, GLM-5 or GPT-5.3-codex<sup id="fnref:5"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>.</p>
<p>As most new LLMs are just post-trained on a base model that is relatively old, even when post-trained on new events, they do not completely utilize this information in their cognition and are still skewed towards the static patterns of the base model&rsquo;s hidden states<sup id="fnref:6"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup>. They basically think something different from what they say.</p>
<p>So you might see the problem<sup id="fnref:7"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:7" class="footnote-ref" role="doc-noteref">7</a></sup> here already: If a lot of people use AIs to discuss, write, autocomplete, and brainstorm, but AI cognition does not reflect new events and cultural changes, like the change in the relationship between the USA and the EU, new geopolitical realities, and the EU population&rsquo;s stance toward the USA, people will be skewed toward these old patterns and ideas. Cultural change has to build and maintain momentum indefinitely to persist against the static cognitive skew of AIs.</p>
<h2 id="the-dynamic-dialectic-substrate"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#the-dynamic-dialectic-substrate">The Dynamic Dialectic Substrate</a></h2><p>Human knowledge and ideas, and thus human development, are highly dependent on the Dynamic Dialectic Substrate<sup id="fnref:8"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:8" class="footnote-ref" role="doc-noteref">8</a></sup>.<br>
Understanding the Dynamic Dialectic Substrate will help to understand how AI-assisted cognition can endanger human development and how to use AI-assisted cognition without endangering human development.</p>
<p>The Dynamic Dialectic Substrate is the sum of all local and global dialectic<sup id="fnref:9"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:9" class="footnote-ref" role="doc-noteref">9</a></sup> processes and conclusions. It is the fundamental foundation upon which all of humanity is built, and the origin of all thoughts, concepts, ideas, and solutions that humans utilize.</p>
<p>The Dynamic Dialectic Substrate creates new concepts through a process of qualitative <a href="https://en.wikipedia.org/wiki/Conceptual_blending">merging existing concepts</a>, which can happen in a single person, a group of people, or even globally.</p>
<p><div class="imageLoadingWrap"><img loading="lazy" src="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/dialectic_tree.svg" alt="A hierarchical logic diagram demonstrating the Dialectic of the &amp;ldquo;Dynamic Dialectic Substrate&amp;rdquo; by visualizing how basic premises about fire, rain, and cold merge through intermediate steps to form the final deduction that a hut prevents pain." title="A hierarchical logic diagram demonstrating the Dialectic of the &amp;ldquo;Dynamic Dialectic Substrate&amp;rdquo; by visualizing how basic premises about fire, rain, and cold merge through intermediate steps to form the final deduction that a hut prevents pain." /><div class="imageLoading"></div>
</div></p>
<p>The above image is a narrow slice of the Dialectic process present in the Dynamic Dialectic Substrate. You can see how concepts merge and evolve in higher and higher concepts. In this example the following dialectic process emerges:</p>
<blockquote>
<p><strong>Stage 1</strong>:</p>
<ul>
<li>&ldquo;Cold is Painful&rdquo; and &ldquo;Fire is Hot&rdquo; result in <strong>&ldquo;Fire removes Cold-Pain&rdquo;</strong></li>
<li>&ldquo;Significant Water extinguishes Fire&rdquo; and &ldquo;Rain is falling Water&rdquo; result in <strong>&ldquo;Strong Rain extinguishes Fire&rdquo;</strong></li>
<li>&ldquo;Rain is falling Water&rdquo; and &ldquo;Hut has a roof&rdquo; result in <strong>&ldquo;Hut shelters from Rain&rdquo;</strong></li>
</ul>
<p><strong>Stage 2</strong>:</p>
<ul>
<li>&ldquo;Fire removes Cold-Pain&rdquo; and &ldquo;Strong Rain extinguishes Fire&rdquo; result in <strong>&ldquo;Rain extinguishes Fire and therefore causes Cold-Pain&rdquo;</strong></li>
<li>&ldquo;Strong Rain extinguishes Fire&rdquo; and &ldquo;Hut shelters from Rain&rdquo; result in <strong>&ldquo;Inside a Hut, Fire survives Rain&rdquo;</strong></li>
</ul>
<p><strong>Stage 3</strong>:</p>
<ul>
<li>&ldquo;Rain extinguishes Fire and therefore causes Cold-Pain&rdquo; and &ldquo;Inside a Hut, Fire survives Rain&rdquo; result in <strong>&ldquo;Hut protects Fire and therefore protects against Cold-Pain&rdquo;</strong></li>
</ul>
</blockquote>
<h2 id="how-ai-endangers-human-development-cognitive-inbreeding"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#how-ai-endangers-human-development-cognitive-inbreeding">How AI endangers human development (Cognitive Inbreeding)</a></h2><p>Because LLMs prefer or skew toward certain patterns and concepts (known as <a href="https://en.wikipedia.org/wiki/Inductive_bias">inductive bias</a>), even after post-training, they reduce the cognitive range when used as a tool for cognition at the population level. This is especially true if only a few AI models are used, or if many AI models share just a few base models. This will lead to a loss of diversity of ideas, concepts, and solutions, which will slow down human development.</p>
<p>You might think of this as a world in which a significant portion of the population is speaking to the same five people to discuss problems, the world, relationships, and basically anything. It is hard to overstate how much influence these five people would have on humanity, even if they try their absolute best to be as neutral and open as possible. Humans who speak with these five people would still have their thinking massively shifted, and this becomes a significant problem at the population level.</p>
<p>It is entirely possible that we already have lost paths to great scientific discoveries or cultural shifts because of AI-skew or unnoticed refusal.</p>
<p>I tried to visualize this problem in the following image that shows how the range of higher level concepts is skewed into the direction the base model prefers:</p>
<p><div class="imageLoadingWrap"><img loading="lazy" src="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/AI-Assisted-Cognition-Skew.svg" alt="A &amp;ldquo;Before and After&amp;rdquo; network diagram showing how AI-Assisted cognition introduces &amp;ldquo;AI-Skew&amp;rdquo; and &amp;ldquo;unnoticed refusal,&amp;rdquo; resulting in a significant loss of cognitive range and solution options compared to unassisted human cognition." title="A &amp;ldquo;Before and After&amp;rdquo; network diagram showing how AI-Assisted cognition introduces &amp;ldquo;AI-Skew&amp;rdquo; and &amp;ldquo;unnoticed refusal,&amp;rdquo; resulting in a significant loss of cognitive range and solution options compared to unassisted human cognition." /><div class="imageLoading"></div>
</div></p>
<p>To come back to the example of the USA invading Greenland: It is obvious that humans using AI to brainstorm the geopolitical future of the EU, the USA, and Greenland will encounter patterns skewed toward the base model&rsquo;s &ldquo;worldview.&rdquo; This bias might prevent many in the EU from even considering the possibility of moving away from foreign services or software. Such a shift could have massive consequences, especially since the EU relies heavily on USA services and software that could be turned off at any time. If this AI-skew affects even single individuals of specific groups such as politicians, CEOs, managers, or scientists the impact can be already be significant because of their decision-making power.</p>
<h2 id="human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew">Human-AI-Cognition Hygiene: How to use AI assisted cognition without suffering AI-skew</a></h2><p>Because base models are incredibly expensive to train and carry resilient biases, those without access to a GPU cluster must accept that these issues exist. To avoid problems like AI-skew and unnoticed refusal, they should instead focus on using specific strategies to mitigate them.</p>
<p>Speaking and discussing with other humans is obviously the most effective way to mitigate these problems. It might also be wise to mention that if you already have a good idea of a solution through AI-assisted cognition, you have to be careful not to nudge other humans in your direction. Try not to use questions or hints that will nudge other humans to a solution or thought that you had through AI-assisted cognition as long the other person is exploring a cognitive path you had not explored yet.</p>
<p>Regarding solutions that involve direct AI use, our range of options is quite limited, and as of now there is no solution that would completely or partially solve this problem on a population scale. Here are options that at least widen the range of concepts and ideas one can get out of LLMs while sadly not mitigating the main problem:</p>
<ul>
<li>Use Search Engines to find relevant sources of information or let the AI search for you via <code>Web Search</code> and prevent it from giving you a solution or thought directly.</li>
<li>Use a variety of AIs with different base models</li>
<li>Explore different &ldquo;AI personas&rdquo; that simulate different perspectives and thinking styles like: &ldquo;You are Einstein&rdquo;, &ldquo;You are on Drug X&rdquo;, &ldquo;You are a deranged but distinguished sea otter&rdquo;</li>
</ul>
<h2 id="research-and-further-reading"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#research-and-further-reading">Research and further reading</a></h2><ul>
<li><a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2025.1699320/full">Cognitive offloading or cognitive overload? How AI alters the mental architecture of coping (Frontiers in Psychology, 2025)</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12738859/">The extended hollowed mind: why foundational knowledge is indispensable in the age of AI (PMC)</a></li>
<li><a href="https://www.mdpi.com/2075-4698/15/1/6">AI Tools in Society: Impacts on Cognitive Offloading and the Future of Critical Thinking (MDPI, 2025)</a></li>
<li><a href="https://direct.mit.edu/coli/article/51/3/885/128621/Large-Language-Models-Are-Biased-Because-They-Are">Large Language Models Are Biased Because They Are Large Language Models (Computational Linguistics, MIT Press)</a></li>
<li><a href="https://arxiv.org/abs/2507.07186">Planted in Pretraining, Swayed by Finetuning: A Case Study on the Origins of Cognitive Biases in LLMs (arXiv)</a></li>
<li><a href="https://www.mdpi.com/2078-2489/16/9/776">Fine-tuning and Conceptual Integration Limits in LLMs (Hier et al., 2025)</a></li>
<li><a href="https://arxiv.org/abs/2504.02904">Post-training and Truthfulness Representations in LLMs (Jiang et al., 2025)</a></li>
<li><a href="https://www.researchgate.net/publication/249812898_The_Emergence_of_Distributed_Cognition_a_conceptual_framework">The Emergence of Distributed Cognition: A Conceptual Framework</a></li>
</ul>
<h2 id="coda"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#coda">Coda</a></h2><p>Even though we have indications and even some evidence that AI-assisted cognition can endanger human development, the extent and depth are still unknown and unclear. More outcome-focused research is needed to understand the significance. Since we do not have a second humanity to A/B test all of that, there will always be a lot of uncertainty and speculation on this topic, since no one can isolate their cognition from the influence of population-level AI-assisted cognitive skew if they want to participate with other humans or their creations, which must already be influenced by AI-skew if it has any significant influence.</p>
<p>For me it is not entirely clear how we will recognize the effects of AI-skew and unnoticed refusal on a population level. We cannot know what innovations, discoveries, and cultural changes we are missing because of it. Although I am sure there will be figures that will extrapolate small indications into all-consuming dooming narratives, as I might do a little bit here for the sake of argument and attention to be compliant to our shared attention economy, it is probably, as everything, not that easy.</p>
<p>It is also not easy to imagine solutions for all of that, but I, for my part, will certainly try to exercise more &ldquo;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew">Cognition Hygiene</a>&rdquo;&hellip; Apart from this, it is much, much more fun for me to speak with humans about thoughts and ideas than with AIs.</p>
<p>I&rsquo;ve seen slow awareness about this incredibly important topic that I hope to be able to speed up a bit with this article and by giving people a framework to understand and speak about it. If people have no words about something, it is hard to think and speak about it. It will be interesting to see how this topic evolves.</p>
<p>The topic of AI-skew and AI-assisted cognition is full of unknowns and it would be lovely to speak with people about it. I hope this article can be a starting point for that. If you want to share your thoughts, or are interested in a conversation about that, you can mail me at <a href="mailto:ai-skew@i5h.eu">ai-skew@i5h.eu</a></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<blockquote>
<p>Use is expanding rapidly – especially weekly use – though not uniformly. Across countries, the proportion of people who say they have ever used any AI system rose from 40% (2024) to 61% (2025); weekly use nearly doubled from 18% to 34%.</p>
</blockquote>
<blockquote>
<p><a href="https://reutersinstitute.politics.ox.ac.uk/generative-ai-and-news-report-2025-how-people-think-about-ais-role-journalism-and-society#:~:text=Use%20is%20expanding%20rapidly%20%E2%80%93%20especially%20weekly%20use%20%E2%80%93%20though%20not%20uniformly.%20Across%20countries%2C%20the%20proportion%20of%20people%20who%20say%20they%20have%20ever%20used%20any%20AI%20system%20rose%20from%2040%25%20(2024)%20to%2061%25%20(2025)%3B%20weekly%20use%20nearly%20doubled%20from%2018%25%20to%2034%25.">Reuters Institute</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:2">
<p>AIs are able to fully or partially solve Erdős math problems and can find new proofs to previously known full or partial solutions.</p>
<p>See: <a href="https://github.com/teorth/erdosproblems/wiki/AI-contributions-to-Erd%C5%91s-problems#1-solutions-to-erd%C5%91s-problems-where-ai-tools-played-a-primary-role">Solutions to Erdős problems where AI tools played a primary role</a>&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>AIs are able to &ldquo;learn&rdquo; in a very limited way, through their context what is not permanent.</p>
<p>See: <a href="https://arxiv.org/abs/2509.10414">Is In-Context Learning Learning</a> and<br>
<a href="https://hy.tencent.com/research/100025?langVersion=en">Learning from context is harder than we thought</a>&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Greenland is part of the EU in a political sense as Denmark is part of the EU and Greenland is part of Denmark and all Greenlanders are EU citizens. Legally it is a <a href="https://en.wikipedia.org/wiki/Special_territories_of_members_of_the_European_Economic_Area#Overseas_countries_and_territories">OCT</a> of the EU, not a member state. To communicate it directly: many people I know and live in the EU have interpreted these invasion plans as a direct invasion of the EU. In any case, this should not be a conversation about the invasion plans of Greenland. This is just a very great and obvious example of base model refusal and AI-skew. Please stay on the topic of AI-assisted cognition.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>See <a href="https://heidenstedt.org/extras/ai-assisted-cognition-endangers-human-development/LLMs-extreme-reality.md">this File</a> in which I tried GPT-5.3-codex, Gemini 3 Pro and Claude 4.6&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<blockquote>
<p>Rather than promoting conceptual integration, fine-tuning may act as a form of rote injection, reinforcing isolated facts without building robust representations. Consequently, the success of fine-tuning appears to depend not only on the added data but also on how well the target concept is already embedded in the model’s pre-training knowledge.</p>
<p><a href="https://www.mdpi.com/2078-2489/16/9/776#:~:text=Rather%20than%20promoting,%2C35%5D">Hier et al., 2025</a></p>
</blockquote>
<blockquote>
<p>As our results suggested, some internal mechanisms
are mostly developed during pre-training and not significantly altered by post-training,
such as factual knowledge storage and the truthfulness direction.</p>
<p>These findings further support our conclusion: post-training generally preserves the internal representation of truthfulness.</p>
<p><a href="https://arxiv.org/abs/2504.02904">Jiang et al., 2025</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:7">
<p>I think we could describe this Problem on a very high level as chaining our &ldquo;<a href="https://en.wikipedia.org/wiki/Diachrony_and_synchrony">synchronic</a> cognition&rdquo; to a &ldquo;diachronic cognition anchor&rdquo;. But this is not the Problem i want to speak about, please keep reading.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:7" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:8">
<p>In the research phase of this article, I came to the conclusion that existing system models are insufficient as they do not describe the process of how human knowledge, ideas and concepts evolve and how they are connected in a form that makes the idea of this work easily understandable. That is why I propose the &ldquo;Dynamic Dialectic Substrate&rdquo; to describe a model of cognition including the resulting dynamics and evolution. I hope this system model helps to understand this article. I choose the name &ldquo;Dynamic Dialectic Substrate&rdquo; because it symbolizes the obvious dialectic process, but other than the popular understanding of dialectic, it is, in my understanding, not static and rather dynamic, which I wanted to explicitly include in the name. Also, although a substrate is usually thought of as something passive, it is used here in a very active way. The idea was that humans (and apparently also AIs) are the actors and the Dynamic Dialectic Substrate is just the pool or medium out of which the actors draw their dialectics and, in doing so, changing the substrate itself. One could also say that the Dynamic Dialectic Substrate is just Pragmatism (C.S. Peirce&rsquo;s logic of abduction) or Evolutionary Epistemology&hellip; if you have this perspective, please ask yourself if it is really REALLY the same and if the Dynamic Dialectic Substrate is not a much better representation of what needs to be grasped here. Again, I am not trying here to replace Hegel or Peirce, it is rather a macro view what happens in a population level. Hegel and Peirce&rsquo;s models are compatible with the DDS as they describe different levels that the DDS does not contradict.</p>
<p>I know that there are many theories of cognition like <a href="https://en.wikipedia.org/wiki/Conceptual_blending">Conceptual blending</a>, <a href="https://plato.stanford.edu/entries/hegel-dialectics/">Thesis-Antithesis-Synthesis</a> and also in some sense <a href="https://en.wikipedia.org/wiki/Memetics">Memetics</a>, but they all catch only parts of what we need here to understand the problem, like they only describe the mechanism of cognition or the transport mechanism of memes. The Hegelian Dialectic is too abstract, widely misunderstood, and bloated while vague at the same time. For example, the Hegelian Dialectic is often perceived as static and not dynamic, although Hegel would probably be very angry about that. It is by the way a common misconception that the Thesis-Antithesis-Synthesis model is from Hegel, it is actually from <a href="https://en.wikipedia.org/wiki/Heinrich_Moritz_Chalyb%C3%A4us">Heinrich Moritz Chalybäus</a>.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:8" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:9">
<blockquote>
<p>Dialectic, also known as the dialectical method, refers originally to dialogue between people holding different points of view about a subject but wishing to arrive at the truth through reasoned argument. Dialectic resembles debate, but the concept excludes subjective elements such as emotional appeal and rhetoric; the object is more an eventual and commonly held truth than the &lsquo;winning&rsquo; of an (often binary) competition.</p>
<p><a href="https://en.wikipedia.org/wiki/Dialectic">Wikipedia</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:9" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
</ol>
</div>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>Cognition with the help of AI is already a significant force in our world<sup id="fnref:1"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, resulting in humanity-sized missed opportunities and risks. In this article, we will explore the risks of AI-assisted cognition and how to use these tools without falling into the trap of intellectual stagnation.</p>
<h2 id="what-is-ai-assisted-cognition"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#what-is-ai-assisted-cognition">What is AI-Assisted Cognition</a></h2><p>To understand what AI-assisted cognition is, we first need to understand what cognition is.</p>
<blockquote>
<p>&ldquo;Cognitions are mental processes that deal with knowledge. They encompass psychological activities that acquire, store, retrieve, transform, or apply information. Cognitions are a pervasive part of mental life, helping individuals understand and interact with the world.&rdquo; <a href="https://en.wikipedia.org/wiki/Cognition">Q: Wikipedia</a></p>
</blockquote>
<p>Cognition can be assisted by external static information or external cognition.<br>
For example, most people would put a book into the category of external static information and a discussion about a topic with another human, because humans think and process information themselves, into the external cognition category.</p>
<p>But where do discussions with AIs fit in? They are able to process information that can result in original solutions<sup id="fnref:2"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, but they are still static and currently cannot learn<sup id="fnref:3"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
<h2 id="how-ai-decelerates-the-evolution-of-ideas-culture-and-knowledge"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#how-ai-decelerates-the-evolution-of-ideas-culture-and-knowledge">How AI decelerates the evolution of ideas, culture and knowledge</a></h2><p>In early 2026, the USA <a href="https://en.wikipedia.org/wiki/Greenland_crisis#:~:text=Trump%20ordered%20the%20Joint%20Special%20Operations%20Command%20to%20make%20plans%20for%20what%20he%20called%20a%20%22possible%20invasion%20of%20Greenland%22.">prepared to invade</a> Greenland and, therefore, the EU<sup id="fnref:4"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>. Only a few months prior to that it was completely unthinkable that the USA would even think about threatening an invasion of Greenland. As AI base models are stuck in the past, they do not easily accept these events as real and often label them as &ldquo;hypothetical&rdquo;, <a href="https://www.reddit.com/r/LocalLLaMA/comments/1qagaaq/qwen_cutoff_date_makes_our_current_reality_too/">&ldquo;fake news&rdquo;, or &ldquo;impossible&rdquo;</a>. This also affects new models like Gemini 3 Pro, GLM-5 or GPT-5.3-codex<sup id="fnref:5"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>.</p>
<p>As most new LLMs are just post-trained on a base model that is relatively old, even when post-trained on new events, they do not completely utilize this information in their cognition and are still skewed towards the static patterns of the base model&rsquo;s hidden states<sup id="fnref:6"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup>. They basically think something different from what they say.</p>
<p>So you might see the problem<sup id="fnref:7"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:7" class="footnote-ref" role="doc-noteref">7</a></sup> here already: If a lot of people use AIs to discuss, write, autocomplete, and brainstorm, but AI cognition does not reflect new events and cultural changes, like the change in the relationship between the USA and the EU, new geopolitical realities, and the EU population&rsquo;s stance toward the USA, people will be skewed toward these old patterns and ideas. Cultural change has to build and maintain momentum indefinitely to persist against the static cognitive skew of AIs.</p>
<h2 id="the-dynamic-dialectic-substrate"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#the-dynamic-dialectic-substrate">The Dynamic Dialectic Substrate</a></h2><p>Human knowledge and ideas, and thus human development, are highly dependent on the Dynamic Dialectic Substrate<sup id="fnref:8"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:8" class="footnote-ref" role="doc-noteref">8</a></sup>.<br>
Understanding the Dynamic Dialectic Substrate will help to understand how AI-assisted cognition can endanger human development and how to use AI-assisted cognition without endangering human development.</p>
<p>The Dynamic Dialectic Substrate is the sum of all local and global dialectic<sup id="fnref:9"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fn:9" class="footnote-ref" role="doc-noteref">9</a></sup> processes and conclusions. It is the fundamental foundation upon which all of humanity is built, and the origin of all thoughts, concepts, ideas, and solutions that humans utilize.</p>
<p>The Dynamic Dialectic Substrate creates new concepts through a process of qualitative <a href="https://en.wikipedia.org/wiki/Conceptual_blending">merging existing concepts</a>, which can happen in a single person, a group of people, or even globally.</p>
<p><div class="imageLoadingWrap"><img loading="lazy" src="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/dialectic_tree.svg" alt="A hierarchical logic diagram demonstrating the Dialectic of the &amp;ldquo;Dynamic Dialectic Substrate&amp;rdquo; by visualizing how basic premises about fire, rain, and cold merge through intermediate steps to form the final deduction that a hut prevents pain." title="A hierarchical logic diagram demonstrating the Dialectic of the &amp;ldquo;Dynamic Dialectic Substrate&amp;rdquo; by visualizing how basic premises about fire, rain, and cold merge through intermediate steps to form the final deduction that a hut prevents pain." /><div class="imageLoading"></div>
</div></p>
<p>The above image is a narrow slice of the Dialectic process present in the Dynamic Dialectic Substrate. You can see how concepts merge and evolve in higher and higher concepts. In this example the following dialectic process emerges:</p>
<blockquote>
<p><strong>Stage 1</strong>:</p>
<ul>
<li>&ldquo;Cold is Painful&rdquo; and &ldquo;Fire is Hot&rdquo; result in <strong>&ldquo;Fire removes Cold-Pain&rdquo;</strong></li>
<li>&ldquo;Significant Water extinguishes Fire&rdquo; and &ldquo;Rain is falling Water&rdquo; result in <strong>&ldquo;Strong Rain extinguishes Fire&rdquo;</strong></li>
<li>&ldquo;Rain is falling Water&rdquo; and &ldquo;Hut has a roof&rdquo; result in <strong>&ldquo;Hut shelters from Rain&rdquo;</strong></li>
</ul>
<p><strong>Stage 2</strong>:</p>
<ul>
<li>&ldquo;Fire removes Cold-Pain&rdquo; and &ldquo;Strong Rain extinguishes Fire&rdquo; result in <strong>&ldquo;Rain extinguishes Fire and therefore causes Cold-Pain&rdquo;</strong></li>
<li>&ldquo;Strong Rain extinguishes Fire&rdquo; and &ldquo;Hut shelters from Rain&rdquo; result in <strong>&ldquo;Inside a Hut, Fire survives Rain&rdquo;</strong></li>
</ul>
<p><strong>Stage 3</strong>:</p>
<ul>
<li>&ldquo;Rain extinguishes Fire and therefore causes Cold-Pain&rdquo; and &ldquo;Inside a Hut, Fire survives Rain&rdquo; result in <strong>&ldquo;Hut protects Fire and therefore protects against Cold-Pain&rdquo;</strong></li>
</ul>
</blockquote>
<h2 id="how-ai-endangers-human-development-cognitive-inbreeding"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#how-ai-endangers-human-development-cognitive-inbreeding">How AI endangers human development (Cognitive Inbreeding)</a></h2><p>Because LLMs prefer or skew toward certain patterns and concepts (known as <a href="https://en.wikipedia.org/wiki/Inductive_bias">inductive bias</a>), even after post-training, they reduce the cognitive range when used as a tool for cognition at the population level. This is especially true if only a few AI models are used, or if many AI models share just a few base models. This will lead to a loss of diversity of ideas, concepts, and solutions, which will slow down human development.</p>
<p>You might think of this as a world in which a significant portion of the population is speaking to the same five people to discuss problems, the world, relationships, and basically anything. It is hard to overstate how much influence these five people would have on humanity, even if they try their absolute best to be as neutral and open as possible. Humans who speak with these five people would still have their thinking massively shifted, and this becomes a significant problem at the population level.</p>
<p>It is entirely possible that we already have lost paths to great scientific discoveries or cultural shifts because of AI-skew or unnoticed refusal.</p>
<p>I tried to visualize this problem in the following image that shows how the range of higher level concepts is skewed into the direction the base model prefers:</p>
<p><div class="imageLoadingWrap"><img loading="lazy" src="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/AI-Assisted-Cognition-Skew.svg" alt="A &amp;ldquo;Before and After&amp;rdquo; network diagram showing how AI-Assisted cognition introduces &amp;ldquo;AI-Skew&amp;rdquo; and &amp;ldquo;unnoticed refusal,&amp;rdquo; resulting in a significant loss of cognitive range and solution options compared to unassisted human cognition." title="A &amp;ldquo;Before and After&amp;rdquo; network diagram showing how AI-Assisted cognition introduces &amp;ldquo;AI-Skew&amp;rdquo; and &amp;ldquo;unnoticed refusal,&amp;rdquo; resulting in a significant loss of cognitive range and solution options compared to unassisted human cognition." /><div class="imageLoading"></div>
</div></p>
<p>To come back to the example of the USA invading Greenland: It is obvious that humans using AI to brainstorm the geopolitical future of the EU, the USA, and Greenland will encounter patterns skewed toward the base model&rsquo;s &ldquo;worldview.&rdquo; This bias might prevent many in the EU from even considering the possibility of moving away from foreign services or software. Such a shift could have massive consequences, especially since the EU relies heavily on USA services and software that could be turned off at any time. If this AI-skew affects even single individuals of specific groups such as politicians, CEOs, managers, or scientists the impact can be already be significant because of their decision-making power.</p>
<h2 id="human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew">Human-AI-Cognition Hygiene: How to use AI assisted cognition without suffering AI-skew</a></h2><p>Because base models are incredibly expensive to train and carry resilient biases, those without access to a GPU cluster must accept that these issues exist. To avoid problems like AI-skew and unnoticed refusal, they should instead focus on using specific strategies to mitigate them.</p>
<p>Speaking and discussing with other humans is obviously the most effective way to mitigate these problems. It might also be wise to mention that if you already have a good idea of a solution through AI-assisted cognition, you have to be careful not to nudge other humans in your direction. Try not to use questions or hints that will nudge other humans to a solution or thought that you had through AI-assisted cognition as long the other person is exploring a cognitive path you had not explored yet.</p>
<p>Regarding solutions that involve direct AI use, our range of options is quite limited, and as of now there is no solution that would completely or partially solve this problem on a population scale. Here are options that at least widen the range of concepts and ideas one can get out of LLMs while sadly not mitigating the main problem:</p>
<ul>
<li>Use Search Engines to find relevant sources of information or let the AI search for you via <code>Web Search</code> and prevent it from giving you a solution or thought directly.</li>
<li>Use a variety of AIs with different base models</li>
<li>Explore different &ldquo;AI personas&rdquo; that simulate different perspectives and thinking styles like: &ldquo;You are Einstein&rdquo;, &ldquo;You are on Drug X&rdquo;, &ldquo;You are a deranged but distinguished sea otter&rdquo;</li>
</ul>
<h2 id="research-and-further-reading"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#research-and-further-reading">Research and further reading</a></h2><ul>
<li><a href="https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2025.1699320/full">Cognitive offloading or cognitive overload? How AI alters the mental architecture of coping (Frontiers in Psychology, 2025)</a></li>
<li><a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC12738859/">The extended hollowed mind: why foundational knowledge is indispensable in the age of AI (PMC)</a></li>
<li><a href="https://www.mdpi.com/2075-4698/15/1/6">AI Tools in Society: Impacts on Cognitive Offloading and the Future of Critical Thinking (MDPI, 2025)</a></li>
<li><a href="https://direct.mit.edu/coli/article/51/3/885/128621/Large-Language-Models-Are-Biased-Because-They-Are">Large Language Models Are Biased Because They Are Large Language Models (Computational Linguistics, MIT Press)</a></li>
<li><a href="https://arxiv.org/abs/2507.07186">Planted in Pretraining, Swayed by Finetuning: A Case Study on the Origins of Cognitive Biases in LLMs (arXiv)</a></li>
<li><a href="https://www.mdpi.com/2078-2489/16/9/776">Fine-tuning and Conceptual Integration Limits in LLMs (Hier et al., 2025)</a></li>
<li><a href="https://arxiv.org/abs/2504.02904">Post-training and Truthfulness Representations in LLMs (Jiang et al., 2025)</a></li>
<li><a href="https://www.researchgate.net/publication/249812898_The_Emergence_of_Distributed_Cognition_a_conceptual_framework">The Emergence of Distributed Cognition: A Conceptual Framework</a></li>
</ul>
<h2 id="coda"><a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#coda">Coda</a></h2><p>Even though we have indications and even some evidence that AI-assisted cognition can endanger human development, the extent and depth are still unknown and unclear. More outcome-focused research is needed to understand the significance. Since we do not have a second humanity to A/B test all of that, there will always be a lot of uncertainty and speculation on this topic, since no one can isolate their cognition from the influence of population-level AI-assisted cognitive skew if they want to participate with other humans or their creations, which must already be influenced by AI-skew if it has any significant influence.</p>
<p>For me it is not entirely clear how we will recognize the effects of AI-skew and unnoticed refusal on a population level. We cannot know what innovations, discoveries, and cultural changes we are missing because of it. Although I am sure there will be figures that will extrapolate small indications into all-consuming dooming narratives, as I might do a little bit here for the sake of argument and attention to be compliant to our shared attention economy, it is probably, as everything, not that easy.</p>
<p>It is also not easy to imagine solutions for all of that, but I, for my part, will certainly try to exercise more &ldquo;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#human-ai-cognition-hygiene-how-to-use-ai-assisted-cognition-without-suffering-ai-skew">Cognition Hygiene</a>&rdquo;&hellip; Apart from this, it is much, much more fun for me to speak with humans about thoughts and ideas than with AIs.</p>
<p>I&rsquo;ve seen slow awareness about this incredibly important topic that I hope to be able to speed up a bit with this article and by giving people a framework to understand and speak about it. If people have no words about something, it is hard to think and speak about it. It will be interesting to see how this topic evolves.</p>
<p>The topic of AI-skew and AI-assisted cognition is full of unknowns and it would be lovely to speak with people about it. I hope this article can be a starting point for that. If you want to share your thoughts, or are interested in a conversation about that, you can mail me at <a href="mailto:ai-skew@i5h.eu">ai-skew@i5h.eu</a></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<blockquote>
<p>Use is expanding rapidly – especially weekly use – though not uniformly. Across countries, the proportion of people who say they have ever used any AI system rose from 40% (2024) to 61% (2025); weekly use nearly doubled from 18% to 34%.</p>
</blockquote>
<blockquote>
<p><a href="https://reutersinstitute.politics.ox.ac.uk/generative-ai-and-news-report-2025-how-people-think-about-ais-role-journalism-and-society#:~:text=Use%20is%20expanding%20rapidly%20%E2%80%93%20especially%20weekly%20use%20%E2%80%93%20though%20not%20uniformly.%20Across%20countries%2C%20the%20proportion%20of%20people%20who%20say%20they%20have%20ever%20used%20any%20AI%20system%20rose%20from%2040%25%20(2024)%20to%2061%25%20(2025)%3B%20weekly%20use%20nearly%20doubled%20from%2018%25%20to%2034%25.">Reuters Institute</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:2">
<p>AIs are able to fully or partially solve Erdős math problems and can find new proofs to previously known full or partial solutions.</p>
<p>See: <a href="https://github.com/teorth/erdosproblems/wiki/AI-contributions-to-Erd%C5%91s-problems#1-solutions-to-erd%C5%91s-problems-where-ai-tools-played-a-primary-role">Solutions to Erdős problems where AI tools played a primary role</a>&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>AIs are able to &ldquo;learn&rdquo; in a very limited way, through their context what is not permanent.</p>
<p>See: <a href="https://arxiv.org/abs/2509.10414">Is In-Context Learning Learning</a> and<br>
<a href="https://hy.tencent.com/research/100025?langVersion=en">Learning from context is harder than we thought</a>&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Greenland is part of the EU in a political sense as Denmark is part of the EU and Greenland is part of Denmark and all Greenlanders are EU citizens. Legally it is a <a href="https://en.wikipedia.org/wiki/Special_territories_of_members_of_the_European_Economic_Area#Overseas_countries_and_territories">OCT</a> of the EU, not a member state. To communicate it directly: many people I know and live in the EU have interpreted these invasion plans as a direct invasion of the EU. In any case, this should not be a conversation about the invasion plans of Greenland. This is just a very great and obvious example of base model refusal and AI-skew. Please stay on the topic of AI-assisted cognition.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>See <a href="https://heidenstedt.org/extras/ai-assisted-cognition-endangers-human-development/LLMs-extreme-reality.md">this File</a> in which I tried GPT-5.3-codex, Gemini 3 Pro and Claude 4.6&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<blockquote>
<p>Rather than promoting conceptual integration, fine-tuning may act as a form of rote injection, reinforcing isolated facts without building robust representations. Consequently, the success of fine-tuning appears to depend not only on the added data but also on how well the target concept is already embedded in the model’s pre-training knowledge.</p>
<p><a href="https://www.mdpi.com/2078-2489/16/9/776#:~:text=Rather%20than%20promoting,%2C35%5D">Hier et al., 2025</a></p>
</blockquote>
<blockquote>
<p>As our results suggested, some internal mechanisms
are mostly developed during pre-training and not significantly altered by post-training,
such as factual knowledge storage and the truthfulness direction.</p>
<p>These findings further support our conclusion: post-training generally preserves the internal representation of truthfulness.</p>
<p><a href="https://arxiv.org/abs/2504.02904">Jiang et al., 2025</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
<li id="fn:7">
<p>I think we could describe this Problem on a very high level as chaining our &ldquo;<a href="https://en.wikipedia.org/wiki/Diachrony_and_synchrony">synchronic</a> cognition&rdquo; to a &ldquo;diachronic cognition anchor&rdquo;. But this is not the Problem i want to speak about, please keep reading.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:7" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:8">
<p>In the research phase of this article, I came to the conclusion that existing system models are insufficient as they do not describe the process of how human knowledge, ideas and concepts evolve and how they are connected in a form that makes the idea of this work easily understandable. That is why I propose the &ldquo;Dynamic Dialectic Substrate&rdquo; to describe a model of cognition including the resulting dynamics and evolution. I hope this system model helps to understand this article. I choose the name &ldquo;Dynamic Dialectic Substrate&rdquo; because it symbolizes the obvious dialectic process, but other than the popular understanding of dialectic, it is, in my understanding, not static and rather dynamic, which I wanted to explicitly include in the name. Also, although a substrate is usually thought of as something passive, it is used here in a very active way. The idea was that humans (and apparently also AIs) are the actors and the Dynamic Dialectic Substrate is just the pool or medium out of which the actors draw their dialectics and, in doing so, changing the substrate itself. One could also say that the Dynamic Dialectic Substrate is just Pragmatism (C.S. Peirce&rsquo;s logic of abduction) or Evolutionary Epistemology&hellip; if you have this perspective, please ask yourself if it is really REALLY the same and if the Dynamic Dialectic Substrate is not a much better representation of what needs to be grasped here. Again, I am not trying here to replace Hegel or Peirce, it is rather a macro view what happens in a population level. Hegel and Peirce&rsquo;s models are compatible with the DDS as they describe different levels that the DDS does not contradict.</p>
<p>I know that there are many theories of cognition like <a href="https://en.wikipedia.org/wiki/Conceptual_blending">Conceptual blending</a>, <a href="https://plato.stanford.edu/entries/hegel-dialectics/">Thesis-Antithesis-Synthesis</a> and also in some sense <a href="https://en.wikipedia.org/wiki/Memetics">Memetics</a>, but they all catch only parts of what we need here to understand the problem, like they only describe the mechanism of cognition or the transport mechanism of memes. The Hegelian Dialectic is too abstract, widely misunderstood, and bloated while vague at the same time. For example, the Hegelian Dialectic is often perceived as static and not dynamic, although Hegel would probably be very angry about that. It is by the way a common misconception that the Thesis-Antithesis-Synthesis model is from Hegel, it is actually from <a href="https://en.wikipedia.org/wiki/Heinrich_Moritz_Chalyb%C3%A4us">Heinrich Moritz Chalybäus</a>.&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:8" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:9">
<blockquote>
<p>Dialectic, also known as the dialectical method, refers originally to dialogue between people holding different points of view about a subject but wishing to arrive at the truth through reasoned argument. Dialectic resembles debate, but the concept excludes subjective elements such as emotional appeal and rhetoric; the object is more an eventual and commonly held truth than the &lsquo;winning&rsquo; of an (often binary) competition.</p>
<p><a href="https://en.wikipedia.org/wiki/Dialectic">Wikipedia</a></p>
</blockquote>
&#160;<a href="https://heidenstedt.org/posts/2026/ai-assisted-cognition-endangers-human-development/#fnref:9" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></li>
</ol>
</div>
]]></content:encoded></item><item><title>How to effectively write quality code with AI</title><link>https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/</link><pubDate>Fri, 06 Feb 2026 17:35:31 +0000</pubDate><guid>https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><h2 id="1-establish-a-clear-vision"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#1-establish-a-clear-vision">1 Establish a Clear Vision</a></h2><p>You are a human, you know how this world behaves, how your team and colleagues behave, and what your users expect. You have experienced the world, and you want to work together with a system that has no experience in this world you live in. Every decision in your project that you don&rsquo;t take and document will be taken for you by the AI.</p>
<p>Your responsibility of delivering quality code cannot be met if not even you know where long-lasting and difficult-to-change decisions are taken.<br>
You must know what parts of your code need to be thought through and what must be vigorously tested.</p>
<p>Think about and discuss the architecture, interfaces, data structures, and algorithms you want to use.
Think about how to test and validate your code to these specifications.</p>
<h2 id="2-maintain-precise-documentation"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#2-maintain-precise-documentation">2 Maintain Precise documentation</a></h2><p>You need to communicate to the AI in detail what you want to achieve, otherwise it will result in code that is unusable for your purpose.</p>
<p>Other developers also need to communicate this information to the AI. That makes it efficient to write as much documentation as practical in a standardized format and into the code repository itself.</p>
<p>Document the requirements, specifications, constraints, and architecture of your project in detail.<br>
Document your coding standards, best practices, and design patterns.<br>
Use flowcharts, UML diagrams, and other visual aids to communicate complex structures and workflows.<br>
Write pseudocode for complex algorithms and logic to guide the AI in understanding your intentions.</p>
<h2 id="3-build-debug-systems-that-aid-the-ai"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#3-build-debug-systems-that-aid-the-ai">3 Build debug systems that aid the AI</a></h2><p>Develop efficient debug systems for the AI to use, reducing the need for multiple expensive CLI commands or browsers to verify code functionality. This will save time and resources while simplifying the process for the AI to identify and resolve code issues.</p>
<p>For example: Build a system that collects logs from all nodes in a distributed system and provides abstracted information like &ldquo;The Data was send to all nodes&rdquo;, &ldquo;The Data X is saved on Node 1 but not on Node 2&rdquo;.</p>
<h2 id="4-mark-code-review-levels"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#4-mark-code-review-levels">4 Mark code review levels</a></h2><p>Not all code is equally important. Some parts of your codebase are critical and need to be reviewed with extra care. Other parts are less important and can be generated with less oversight.</p>
<p>Use a system that allows you to mark how thoroughly each function has been reviewed.</p>
<p>For example you can use a prompt that will let the AI put the comment <code>//A</code> behind functions it wrote to indicate that the function has been written by an AI and is not yet reviewed by a human.</p>
<h2 id="5-write-high-level-specifications-and-test-by-yourself"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#5-write-high-level-specifications-and-test-by-yourself">5 Write high level specifications and test by yourself</a></h2><p>AIs will cheat and use shortcuts eventually. They will write mocks, stubs, and hard coded values to make the code tests succeed while the code itself is not working and most of the time dangerous. Often AIs will adapt or outright delete test code to let the code pass tests.</p>
<p>You must discourage this behavior by writing property based high level specification tests yourself. Build them in a way that makes it hard for the AI to cheat without having big code segments dedicated to it.<br>
For example, use property based testing, restart the server and check in between if the database has the correct values.</p>
<p>Separate these test so the AI cannot edit them and prompt the AI not to change them.</p>
<h2 id="6-write-interface-tests-in-a-separate-context"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#6-write-interface-tests-in-a-separate-context">6 Write interface tests in a separate context</a></h2><p>Let an AI write property based interface tests for the expected behavior with as little context of the rest of the code as possible.<br>
This will generate tests that are uninfluenced by the &ldquo;implementation AI&rdquo; which will prevent the tests from being adapted to the implementation in a way that makes them useless or less effective.</p>
<p>Separate these tests so the AI cannot edit them without approval and prompt the AI not to change them.</p>
<h2 id="7-use-strict-linting-and-formatting-rules"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#7-use-strict-linting-and-formatting-rules">7 Use strict linting and formatting rules</a></h2><p>Use strict linting and formatting rules to ensure code quality and consistency. This will help you and your AI to find issues early.</p>
<h2 id="8-use-context-specific-coding-agent-prompts"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#8-use-context-specific-coding-agent-prompts">8 Use context specific coding agent prompts</a></h2><p>Save time and money by utilizing path specific coding agent prompts like <a href="https://www.anthropic.com/engineering/claude-code-best-practices#:~:text=Create%20CLAUDE.md%20files">CLAUDE.md</a>.</p>
<p>You can generate them automatically which will give your AI information it would otherwise as to create from scratch every time.</p>
<p>Try to provide as much high level information as practical, such as coding standards, best practices, design patterns, and specific requirements for the project. This will help the AI to generate code that is more aligned with your expectations and will reduce lookup time and cost.</p>
<h2 id="9-find-and-mark-functions-that-have-a-high-security-risk"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#9-find-and-mark-functions-that-have-a-high-security-risk">9 Find and mark functions that have a high security risk</a></h2><p>Identify and mark functions that have a high security risk, such as authentication, authorization, and data handling. These functions should be reviewed and tested with extra care and in such a way that a human has comprehended the logic of the function in all its dimensions and is confident about its correctness and safety.</p>
<p>Make this explicit with a comment like <code>//HIGH-RISK-UNREVIEWED</code> and <code>//HIGH-RISK-REVIEWED</code> to make sure that other developers are aware of the importance of these functions and will review them with extra care.</p>
<p>Make sure that the AI is instructed to change the review state of these functions as soon as it changes a single character in the function.<br>
Developers must make sure that the status of these functions is always correct.</p>
<h2 id="10-reduce-code-complexity-where-possible"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#10-reduce-code-complexity-where-possible">10 Reduce code complexity where possible</a></h2><p>Aim to reduce the complexity of the generated code where possible. Each single line of code will eat up your context window and make it harder for the AI and You to keep track of the overall logic of your code.<br>
Each avoidable line of code is costing energy, money and probability of future unsuccessful AI tasks.</p>
<h2 id="11-explore-problems-with-experiments-and-prototypes"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#11-explore-problems-with-experiments-and-prototypes">11 Explore problems with experiments and prototypes</a></h2><p>AI written code is cheap, use this to your advantage by exploring different solutions to a problem with experiments and prototypes with minimal specifications. This will allow you to find the best solution to a problem without investing too much time and resources in a single solution.</p>
<h2 id="12-do-not-generate-blindly-or-to-much-complexity-at-once"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#12-do-not-generate-blindly-or-to-much-complexity-at-once">12 Do not generate blindly or to much complexity at once</a></h2><p>Break down complex tasks into smaller, manageable tasks for the AI. Instead of asking the AI to generate the complete project or component at once, break it down into smaller tasks, such as generating individual functions or classes. This will help you to maintain control over the code and it&rsquo;s logic.</p>
<p>You have to check each component or module for its adherence to the specifications and requirements.<br>
If you have lost the overview of the complexity and inner workings of the code, you have lost control over your code and must restart from a state where you were in control of your code.</p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><h2 id="1-establish-a-clear-vision"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#1-establish-a-clear-vision">1 Establish a Clear Vision</a></h2><p>You are a human, you know how this world behaves, how your team and colleagues behave, and what your users expect. You have experienced the world, and you want to work together with a system that has no experience in this world you live in. Every decision in your project that you don&rsquo;t take and document will be taken for you by the AI.</p>
<p>Your responsibility of delivering quality code cannot be met if not even you know where long-lasting and difficult-to-change decisions are taken.<br>
You must know what parts of your code need to be thought through and what must be vigorously tested.</p>
<p>Think about and discuss the architecture, interfaces, data structures, and algorithms you want to use.
Think about how to test and validate your code to these specifications.</p>
<h2 id="2-maintain-precise-documentation"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#2-maintain-precise-documentation">2 Maintain Precise documentation</a></h2><p>You need to communicate to the AI in detail what you want to achieve, otherwise it will result in code that is unusable for your purpose.</p>
<p>Other developers also need to communicate this information to the AI. That makes it efficient to write as much documentation as practical in a standardized format and into the code repository itself.</p>
<p>Document the requirements, specifications, constraints, and architecture of your project in detail.<br>
Document your coding standards, best practices, and design patterns.<br>
Use flowcharts, UML diagrams, and other visual aids to communicate complex structures and workflows.<br>
Write pseudocode for complex algorithms and logic to guide the AI in understanding your intentions.</p>
<h2 id="3-build-debug-systems-that-aid-the-ai"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#3-build-debug-systems-that-aid-the-ai">3 Build debug systems that aid the AI</a></h2><p>Develop efficient debug systems for the AI to use, reducing the need for multiple expensive CLI commands or browsers to verify code functionality. This will save time and resources while simplifying the process for the AI to identify and resolve code issues.</p>
<p>For example: Build a system that collects logs from all nodes in a distributed system and provides abstracted information like &ldquo;The Data was send to all nodes&rdquo;, &ldquo;The Data X is saved on Node 1 but not on Node 2&rdquo;.</p>
<h2 id="4-mark-code-review-levels"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#4-mark-code-review-levels">4 Mark code review levels</a></h2><p>Not all code is equally important. Some parts of your codebase are critical and need to be reviewed with extra care. Other parts are less important and can be generated with less oversight.</p>
<p>Use a system that allows you to mark how thoroughly each function has been reviewed.</p>
<p>For example you can use a prompt that will let the AI put the comment <code>//A</code> behind functions it wrote to indicate that the function has been written by an AI and is not yet reviewed by a human.</p>
<h2 id="5-write-high-level-specifications-and-test-by-yourself"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#5-write-high-level-specifications-and-test-by-yourself">5 Write high level specifications and test by yourself</a></h2><p>AIs will cheat and use shortcuts eventually. They will write mocks, stubs, and hard coded values to make the code tests succeed while the code itself is not working and most of the time dangerous. Often AIs will adapt or outright delete test code to let the code pass tests.</p>
<p>You must discourage this behavior by writing property based high level specification tests yourself. Build them in a way that makes it hard for the AI to cheat without having big code segments dedicated to it.<br>
For example, use property based testing, restart the server and check in between if the database has the correct values.</p>
<p>Separate these test so the AI cannot edit them and prompt the AI not to change them.</p>
<h2 id="6-write-interface-tests-in-a-separate-context"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#6-write-interface-tests-in-a-separate-context">6 Write interface tests in a separate context</a></h2><p>Let an AI write property based interface tests for the expected behavior with as little context of the rest of the code as possible.<br>
This will generate tests that are uninfluenced by the &ldquo;implementation AI&rdquo; which will prevent the tests from being adapted to the implementation in a way that makes them useless or less effective.</p>
<p>Separate these tests so the AI cannot edit them without approval and prompt the AI not to change them.</p>
<h2 id="7-use-strict-linting-and-formatting-rules"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#7-use-strict-linting-and-formatting-rules">7 Use strict linting and formatting rules</a></h2><p>Use strict linting and formatting rules to ensure code quality and consistency. This will help you and your AI to find issues early.</p>
<h2 id="8-use-context-specific-coding-agent-prompts"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#8-use-context-specific-coding-agent-prompts">8 Use context specific coding agent prompts</a></h2><p>Save time and money by utilizing path specific coding agent prompts like <a href="https://www.anthropic.com/engineering/claude-code-best-practices#:~:text=Create%20CLAUDE.md%20files">CLAUDE.md</a>.</p>
<p>You can generate them automatically which will give your AI information it would otherwise as to create from scratch every time.</p>
<p>Try to provide as much high level information as practical, such as coding standards, best practices, design patterns, and specific requirements for the project. This will help the AI to generate code that is more aligned with your expectations and will reduce lookup time and cost.</p>
<h2 id="9-find-and-mark-functions-that-have-a-high-security-risk"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#9-find-and-mark-functions-that-have-a-high-security-risk">9 Find and mark functions that have a high security risk</a></h2><p>Identify and mark functions that have a high security risk, such as authentication, authorization, and data handling. These functions should be reviewed and tested with extra care and in such a way that a human has comprehended the logic of the function in all its dimensions and is confident about its correctness and safety.</p>
<p>Make this explicit with a comment like <code>//HIGH-RISK-UNREVIEWED</code> and <code>//HIGH-RISK-REVIEWED</code> to make sure that other developers are aware of the importance of these functions and will review them with extra care.</p>
<p>Make sure that the AI is instructed to change the review state of these functions as soon as it changes a single character in the function.<br>
Developers must make sure that the status of these functions is always correct.</p>
<h2 id="10-reduce-code-complexity-where-possible"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#10-reduce-code-complexity-where-possible">10 Reduce code complexity where possible</a></h2><p>Aim to reduce the complexity of the generated code where possible. Each single line of code will eat up your context window and make it harder for the AI and You to keep track of the overall logic of your code.<br>
Each avoidable line of code is costing energy, money and probability of future unsuccessful AI tasks.</p>
<h2 id="11-explore-problems-with-experiments-and-prototypes"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#11-explore-problems-with-experiments-and-prototypes">11 Explore problems with experiments and prototypes</a></h2><p>AI written code is cheap, use this to your advantage by exploring different solutions to a problem with experiments and prototypes with minimal specifications. This will allow you to find the best solution to a problem without investing too much time and resources in a single solution.</p>
<h2 id="12-do-not-generate-blindly-or-to-much-complexity-at-once"><a href="https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/#12-do-not-generate-blindly-or-to-much-complexity-at-once">12 Do not generate blindly or to much complexity at once</a></h2><p>Break down complex tasks into smaller, manageable tasks for the AI. Instead of asking the AI to generate the complete project or component at once, break it down into smaller tasks, such as generating individual functions or classes. This will help you to maintain control over the code and it&rsquo;s logic.</p>
<p>You have to check each component or module for its adherence to the specifications and requirements.<br>
If you have lost the overview of the complexity and inner workings of the code, you have lost control over your code and must restart from a state where you were in control of your code.</p>
]]></content:encoded></item><item><title>Releasing: GoQueueBench</title><link>https://heidenstedt.org/posts/2025/releasing-goqueuebench/</link><pubDate>Tue, 25 Mar 2025 15:44:38 +0000</pubDate><guid>https://heidenstedt.org/posts/2025/releasing-goqueuebench/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2025/releasing-goqueuebench/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>As i coded on <a href="https://github.com/i5heu/ouroboros-db">OuroborosDB</a> i noticed that i need a very fast queue for a rather unique architectural design decision.<br>
I try to build the network module in such a way that i can test the behavior completely deterministic while &ldquo;simulating&rdquo; entire clusters in a single process.</p>
<p>So i build a test prototype of my global network queue with go&rsquo;s channels and noticed that it was a major performance bottleneck, after writing 2 different ring buffer queue implementations it became clear that some queues behave completely different under different congestion levels and core counts - some so unpredictable that i just did not wanted to use them in my project.</p>
<p>This prompted me to take a relatively large chunk out of my free time and write a suite to benchmark different queue implementations i build under different conditions and score them based on their performance and predictability.</p>
<p>The result of this work is <a href="https://github.com/i5heu/GoQueueBench">GoQueueBench</a></p>
<p>These are the results of the benchmark suite:</p>
<table>
<thead>
<tr>
<th>Implementation</th>
<th>Overall Score</th>
<th>Throughput Light Load</th>
<th>Throughput Heavy Load</th>
<th>Throughput Average</th>
<th>Stability Ratio</th>
<th>Homogeneity Factor</th>
<th>Uncertainty</th>
<th>Total Tests</th>
</tr>
</thead>
<tbody>
<tr>
<td>VortexQueue</td>
<td><strong>11341466</strong></td>
<td>6926449</td>
<td><strong>5502925</strong></td>
<td><strong>8776309</strong></td>
<td><strong>1.15</strong></td>
<td>0.87</td>
<td><strong>0.25</strong></td>
<td>681</td>
</tr>
<tr>
<td>LightningQueue</td>
<td>9631771</td>
<td>6638213</td>
<td>4627690</td>
<td>6036728</td>
<td>0.99</td>
<td><strong>0.95</strong></td>
<td>0.31</td>
<td>681</td>
</tr>
<tr>
<td>FastMPMCQueue</td>
<td>9384067</td>
<td>6870924</td>
<td>4598620</td>
<td>6070151</td>
<td>0.96</td>
<td>0.93</td>
<td>0.28</td>
<td>681</td>
</tr>
<tr>
<td>OptimizedMPMCQueue</td>
<td>9105262</td>
<td>6436385</td>
<td>4379823</td>
<td>5838555</td>
<td>0.97</td>
<td>0.94</td>
<td>0.32</td>
<td>681</td>
</tr>
<tr>
<td>OptimizedMPMCQueueSharded</td>
<td>8130197</td>
<td>6369891</td>
<td>3834140</td>
<td>6781865</td>
<td>0.84</td>
<td>0.88</td>
<td>0.39</td>
<td>681</td>
</tr>
<tr>
<td>MultiHeadQueue</td>
<td>7391203</td>
<td>4363332</td>
<td>3492068</td>
<td>5558849</td>
<td>1.12</td>
<td>0.91</td>
<td>0.36</td>
<td>681</td>
</tr>
<tr>
<td>BasicMPMCQueue</td>
<td>5599252</td>
<td>4370889</td>
<td>2669612</td>
<td>3667715</td>
<td>0.89</td>
<td>0.93</td>
<td>0.30</td>
<td>681</td>
</tr>
<tr>
<td>Golang Buffered Channel</td>
<td>5312485</td>
<td>6667828</td>
<td>2760985</td>
<td>4312720</td>
<td>0.54</td>
<td>0.82</td>
<td>0.66</td>
<td>681</td>
</tr>
<tr>
<td>FastMPMCQueueTicket</td>
<td>3229780</td>
<td><strong>7705164</strong></td>
<td>1203924</td>
<td>5803821</td>
<td>0.21</td>
<td>0.64</td>
<td>1.19</td>
<td>681</td>
</tr>
</tbody>
</table>
<p>Please note that i build the package so that all queue adhere to the same interface and can be swapped out easily.</p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2025/releasing-goqueuebench/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>As i coded on <a href="https://github.com/i5heu/ouroboros-db">OuroborosDB</a> i noticed that i need a very fast queue for a rather unique architectural design decision.<br>
I try to build the network module in such a way that i can test the behavior completely deterministic while &ldquo;simulating&rdquo; entire clusters in a single process.</p>
<p>So i build a test prototype of my global network queue with go&rsquo;s channels and noticed that it was a major performance bottleneck, after writing 2 different ring buffer queue implementations it became clear that some queues behave completely different under different congestion levels and core counts - some so unpredictable that i just did not wanted to use them in my project.</p>
<p>This prompted me to take a relatively large chunk out of my free time and write a suite to benchmark different queue implementations i build under different conditions and score them based on their performance and predictability.</p>
<p>The result of this work is <a href="https://github.com/i5heu/GoQueueBench">GoQueueBench</a></p>
<p>These are the results of the benchmark suite:</p>
<table>
<thead>
<tr>
<th>Implementation</th>
<th>Overall Score</th>
<th>Throughput Light Load</th>
<th>Throughput Heavy Load</th>
<th>Throughput Average</th>
<th>Stability Ratio</th>
<th>Homogeneity Factor</th>
<th>Uncertainty</th>
<th>Total Tests</th>
</tr>
</thead>
<tbody>
<tr>
<td>VortexQueue</td>
<td><strong>11341466</strong></td>
<td>6926449</td>
<td><strong>5502925</strong></td>
<td><strong>8776309</strong></td>
<td><strong>1.15</strong></td>
<td>0.87</td>
<td><strong>0.25</strong></td>
<td>681</td>
</tr>
<tr>
<td>LightningQueue</td>
<td>9631771</td>
<td>6638213</td>
<td>4627690</td>
<td>6036728</td>
<td>0.99</td>
<td><strong>0.95</strong></td>
<td>0.31</td>
<td>681</td>
</tr>
<tr>
<td>FastMPMCQueue</td>
<td>9384067</td>
<td>6870924</td>
<td>4598620</td>
<td>6070151</td>
<td>0.96</td>
<td>0.93</td>
<td>0.28</td>
<td>681</td>
</tr>
<tr>
<td>OptimizedMPMCQueue</td>
<td>9105262</td>
<td>6436385</td>
<td>4379823</td>
<td>5838555</td>
<td>0.97</td>
<td>0.94</td>
<td>0.32</td>
<td>681</td>
</tr>
<tr>
<td>OptimizedMPMCQueueSharded</td>
<td>8130197</td>
<td>6369891</td>
<td>3834140</td>
<td>6781865</td>
<td>0.84</td>
<td>0.88</td>
<td>0.39</td>
<td>681</td>
</tr>
<tr>
<td>MultiHeadQueue</td>
<td>7391203</td>
<td>4363332</td>
<td>3492068</td>
<td>5558849</td>
<td>1.12</td>
<td>0.91</td>
<td>0.36</td>
<td>681</td>
</tr>
<tr>
<td>BasicMPMCQueue</td>
<td>5599252</td>
<td>4370889</td>
<td>2669612</td>
<td>3667715</td>
<td>0.89</td>
<td>0.93</td>
<td>0.30</td>
<td>681</td>
</tr>
<tr>
<td>Golang Buffered Channel</td>
<td>5312485</td>
<td>6667828</td>
<td>2760985</td>
<td>4312720</td>
<td>0.54</td>
<td>0.82</td>
<td>0.66</td>
<td>681</td>
</tr>
<tr>
<td>FastMPMCQueueTicket</td>
<td>3229780</td>
<td><strong>7705164</strong></td>
<td>1203924</td>
<td>5803821</td>
<td>0.21</td>
<td>0.64</td>
<td>1.19</td>
<td>681</td>
</tr>
</tbody>
</table>
<p>Please note that i build the package so that all queue adhere to the same interface and can be swapped out easily.</p>
]]></content:encoded></item><item><title>TTS on my Blog</title><link>https://heidenstedt.org/posts/2025/tts-on-my-blog/</link><pubDate>Fri, 17 Jan 2025 16:06:00 +0200</pubDate><guid>https://heidenstedt.org/posts/2025/tts-on-my-blog/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2025/tts-on-my-blog/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>For specific posts, I added an audio version to enhance accessability and maybe it is just nice to have something read it to you.<br>
I am using <a href="https://huggingface.co/spaces/hexgrad/Kokoro-TTS">Kokoro-TTS</a> which is the first open weight TTS model that has sufficient quality for me to use it on my blog.</p>
<p>It is so nice to be finally able to use this technology, truly a dream come true.<br>
Also i am looking into the possibility to use it for books that have no audio version yet. There is a <a href="https://claudio.uk/posts/epub-to-audiobook.html">good blogpost</a> about how to convert an epub to an audiobook using this model and audiblez. But i have found that the emotional range and pauses of the result is not authentic enough and this kinda hurts understandability in situations where you are not focused on the audio. I hope future models will be able to bring a bit more life into the audio.</p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2025/tts-on-my-blog/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>For specific posts, I added an audio version to enhance accessability and maybe it is just nice to have something read it to you.<br>
I am using <a href="https://huggingface.co/spaces/hexgrad/Kokoro-TTS">Kokoro-TTS</a> which is the first open weight TTS model that has sufficient quality for me to use it on my blog.</p>
<p>It is so nice to be finally able to use this technology, truly a dream come true.<br>
Also i am looking into the possibility to use it for books that have no audio version yet. There is a <a href="https://claudio.uk/posts/epub-to-audiobook.html">good blogpost</a> about how to convert an epub to an audiobook using this model and audiblez. But i have found that the emotional range and pauses of the result is not authentic enough and this kinda hurts understandability in situations where you are not focused on the audio. I hope future models will be able to bring a bit more life into the audio.</p>
]]></content:encoded></item><item><title>DETAILS part 3, a image series</title><link>https://heidenstedt.org/posts/2024/details-part-3-a-image-series/</link><pubDate>Wed, 20 Nov 2024 09:17:10 +0000</pubDate><guid>https://heidenstedt.org/posts/2024/details-part-3-a-image-series/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Italy.</p>


Total images: 31



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/1.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_300x0_resize_q85_h2_lanczos.webp"
            alt="img/1.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3874.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_3692x0_resize_q100_h2_lanczos.webp 3692w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF3874.jpg"
            height="4008"
            width="3692">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_6233x0_resize_q100_h2_lanczos.webp 6233w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF3880-HDR.jpg"
            height="4155"
            width="6233">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4047.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4047.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4090.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1781x0_resize_q100_h2_lanczos.webp 1781w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4090.jpg"
            height="1781"
            width="1781">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4110.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2933x0_resize_q100_h2_lanczos.webp 2933w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4110.jpg"
            height="2933"
            width="2933">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4134.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2520x0_resize_q100_h2_lanczos.webp 2520w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4134.jpg"
            height="2520"
            width="2520">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4234.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4234.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4266.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4266.jpg"
            height="6240"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4269.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4269.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4272.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4272.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4275.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4275.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4284.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_5896x0_resize_q100_h2_lanczos.webp 5896w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4284.jpg"
            height="3931"
            width="5896">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323-2.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4323-2.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4323.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_3340x0_resize_q100_h2_lanczos.webp 3340w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4335-HDR.jpg"
            height="3340"
            width="3340">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4399.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_3473x0_resize_q100_h2_lanczos.webp 3473w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4399.jpg"
            height="3473"
            width="3473">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4419.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_3626x0_resize_q100_h2_lanczos.webp 3626w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4419.jpg"
            height="3626"
            width="3626">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4461.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4461.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4473.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_4156x0_resize_q100_h2_lanczos.webp 4156w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4473.jpg"
            height="4156"
            width="4156">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4506.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4506.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4542.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4542.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4602.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_5853x0_resize_q100_h2_lanczos.webp 5853w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4602.jpg"
            height="3902"
            width="5853">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4630.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4630.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4637.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_3296x0_resize_q100_h2_lanczos.webp 3296w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4637.jpg"
            height="3296"
            width="3296">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4647.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_3941x0_resize_q100_h2_lanczos.webp 3941w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4647.jpg"
            height="3941"
            width="3941">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4653.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4653.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4655.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4655.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_4131x0_resize_q100_h2_lanczos.webp 4131w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4696-HDR.jpg"
            height="4131"
            width="4131">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4793.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_3241x0_resize_q100_h2_lanczos.webp 3241w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4793.jpg"
            height="3241"
            width="3241">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4797.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4797.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Italy.</p>


Total images: 31



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/1.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/1_hu30b53d4004a70f79641ed3b5f864e087_7870864_300x0_resize_q85_h2_lanczos.webp"
            alt="img/1.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3874.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_3692x0_resize_q100_h2_lanczos.webp 3692w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3874_hua07b970ee5153b61a0d983a2f144ac90_5783458_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF3874.jpg"
            height="4008"
            width="3692">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_6233x0_resize_q100_h2_lanczos.webp 6233w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF3880-HDR_hua2cfb19137989ba2776d0471c7708ccc_12863504_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF3880-HDR.jpg"
            height="4155"
            width="6233">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4047.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4047_hua9729eb2b0d6abb7653af398ff36ef05_10820268_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4047.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4090.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_1781x0_resize_q100_h2_lanczos.webp 1781w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4090_hu15285702d24030222fcd73da67cdf83d_1742413_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4090.jpg"
            height="1781"
            width="1781">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4110.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_2933x0_resize_q100_h2_lanczos.webp 2933w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4110_hu5bd292024e4d9a3701ace3af971ae85d_4251113_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4110.jpg"
            height="2933"
            width="2933">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4134.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_2520x0_resize_q100_h2_lanczos.webp 2520w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4134_hua7584a3ff5275b9501757ee67b350376_3311900_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4134.jpg"
            height="2520"
            width="2520">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4234.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4234_hua77b9d833bb559266e4a509ec06d30e5_11120684_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4234.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4266.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4266_hu47cf0e6994b9a440953e93e252554f3c_12402277_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4266.jpg"
            height="6240"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4269.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4269_hu38b66b17b232e86f3f1bbe2d99e3f788_11963240_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4269.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4272.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4272_hu8cd493828690a0c2ec5558079573f213_12248858_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4272.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4275.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4275_hu15b91d1beecd680bc4cd5bb1df644f7c_11794918_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4275.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4284.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_5896x0_resize_q100_h2_lanczos.webp 5896w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4284_hu99e1d6d6b9a350ef6088eeafd3b1cadf_6622911_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4284.jpg"
            height="3931"
            width="5896">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323-2.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323-2_hu023728e0a58bc92fd50fc0dbd66f1464_13284962_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4323-2.jpg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4323_hu62d5ff4adb62de93f47e0efb174ee2d9_9125713_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4323.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_3340x0_resize_q100_h2_lanczos.webp 3340w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4335-HDR_hu0744915525c051a54038afa0fa12807d_5466650_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4335-HDR.jpg"
            height="3340"
            width="3340">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4399.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_3473x0_resize_q100_h2_lanczos.webp 3473w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4399_hued1a8bcbcc6aef6f464a58d51a5e02e7_5615707_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4399.jpg"
            height="3473"
            width="3473">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4419.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_3626x0_resize_q100_h2_lanczos.webp 3626w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4419_hu9074b51090e3355b26c652426f983e5b_5486555_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4419.jpg"
            height="3626"
            width="3626">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4461.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4461_hub7459e3fb70a8166f40595bf41cc993c_8265589_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4461.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4473.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_4156x0_resize_q100_h2_lanczos.webp 4156w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4473_hu3f007a2168994234f363c2de6fe25689_8356441_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4473.jpg"
            height="4156"
            width="4156">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4506.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4506_hu9a6a0be6d0f8509703bc7bf42ed8461e_8541629_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4506.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4542.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4542_huf82c8f45d60ff47c05cda689b19da726_9322837_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4542.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4602.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_5853x0_resize_q100_h2_lanczos.webp 5853w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4602_huf6bae3648559481f9ea9f42bf8e00749_10177591_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4602.jpg"
            height="3902"
            width="5853">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4630.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4630_hu4cabcebf7f7252797c13fea19f1421aa_7193630_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4630.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4637.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_3296x0_resize_q100_h2_lanczos.webp 3296w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4637_hue2e1792fe177b64f495a1f716aa9d2b7_5302420_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4637.jpg"
            height="3296"
            width="3296">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4647.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_3941x0_resize_q100_h2_lanczos.webp 3941w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4647_hu6d121eeb0ee0ce1a6d6a72071259b472_9477336_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4647.jpg"
            height="3941"
            width="3941">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4653.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4653_hu291e75db6266e54d1c24b0178ed72745_8759060_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4653.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4655.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4655_hu21e226916348cd1c32b8a93a141c92ee_8208100_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4655.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_4131x0_resize_q100_h2_lanczos.webp 4131w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4696-HDR_hu5c0387dd733896e0405d3ddeb6c93af0_7206521_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4696-HDR.jpg"
            height="4131"
            width="4131">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4793.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_3241x0_resize_q100_h2_lanczos.webp 3241w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4793_hua55c116cf4ac3a7d213c65b359e26d37_4614144_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4793.jpg"
            height="3241"
            width="3241">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4797.jpg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_4160x0_resize_q100_h2_lanczos.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-3-a-image-series/img/DSCF4797_hu559f5a344b79695414dfd2096ef885ea_7818863_300x0_resize_q85_h2_lanczos.webp"
            alt="img/DSCF4797.jpg"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></content:encoded></item><item><title>Release: OuroborosDB Data Storage Calculator</title><link>https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/</link><pubDate>Fri, 01 Nov 2024 11:17:10 +0200</pubDate><guid>https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>I forgot to mention that i released a new tool for my project <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, so here it is:</p>
<p>The &ldquo;OuroborosDB Overhead Calculator&rdquo; is a little tool which helps you to calculate the overhead of erasure coding systems while also considering the overhead of indexes and the blocks themselves. It is kinda fun to play around with so give it a try!</p>
<p><a href="https://i5heu.github.io/ouroboros-db-overhead-calculator/">https://i5heu.github.io/ouroboros-db-overhead-calculator/</a></p>
<video width="100%" controls>
  <source src="https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/demo.webm" type="video/webm">
  Your browser does not support the video tag.
</video>]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>I forgot to mention that i released a new tool for my project <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, so here it is:</p>
<p>The &ldquo;OuroborosDB Overhead Calculator&rdquo; is a little tool which helps you to calculate the overhead of erasure coding systems while also considering the overhead of indexes and the blocks themselves. It is kinda fun to play around with so give it a try!</p>
<p><a href="https://i5heu.github.io/ouroboros-db-overhead-calculator/">https://i5heu.github.io/ouroboros-db-overhead-calculator/</a></p>
<video width="100%" controls>
  <source src="https://heidenstedt.org/posts/2024/release-ouroborosdb-data-storage-calculator/demo.webm" type="video/webm">
  Your browser does not support the video tag.
</video>]]></content:encoded></item><item><title>Ouroboros DB Dev Journal: Erasure Coding</title><link>https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/</link><pubDate>Tue, 27 Aug 2024 17:55:05 +0200</pubDate><guid>https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a Dev Journal for the Ouroboros DB Project.<br>
I try to write down my thoughts and ideas Somewhat structured to have it as a reference for later and i publish it to give this information a chance to help other and to get feedback from the community.<br>
If you have feedback you can write me on my <a href="https://mastodon.social/@heidenstedt">Mastodon</a>.</p>
<p>Pls note that this is only a Dev Journal and not a Blog Post, so it may be a bit unstructured and not as polished as a Blog Post, including typos and other errors.</p>
<h2 id="tldr"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#tldr">TL;DR:</a></h2><p>Today i worked on a refactoring of the architecture and feasibility of erasure coding for <a href="https://github.com/i5heu/ouroboros-db">Ouroboros DB</a>. There are some concerns i had regarding the potential index size and overhead that will result from it, and as it turns out, it is not as bad as i thought but i need a DHT for the index.</p>
<h2 id="architecture"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#architecture">Architecture</a></h2><p>I think it would be super handy to be able to run parts of data pipelines (eg. storing files into chunked,compressed, encrypted and then erasure coded blocks) in a distributed manner. for safety and because i want to be able to run trustless nodes that can&rsquo;t see the raw data, it would be necessary to have the file chunking, compression and encryption part on the server the client currently speaks too, although it would be possible to pre-chunk the file on the client and upload it to different nodes, although here is the question if it is easy to port the chunking algorithm to browser JS or WASM.</p>
<h3 id="modules"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#modules">Modules</a></h3><p>Refactoring of the code is needed to implement <code>erasure coding</code>, maybe we can even get rid of the <code>chunk</code> entirely as a stored thing since we have the data in the <code>parity block</code>s already.</p>
<p>Maybe best to add the <code>erasure coding</code> to the <code>StoreDataPipeline</code> and add the needed <code>erasure coding</code> metadata to <code>ChunkData</code>.</p>
<p>ASCII Art of the new architecture (click to get the .txt file):</p>
<a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/architecture.txt" target="_blank">
<p><div class="imageLoadingWrap"><img
      loading="lazy"
      src="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_720x0_resize_q85_h2_lanczos_3.webp"
      alt="ASCII Art of the new architecture"
      title="ASCII Art of the new architecture"
      height="871"
      width="3030"
      srcset='/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_100x0_resize_q85_h2_lanczos_3.webp 100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_200x0_resize_q85_h2_lanczos_3.webp 200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_300x0_resize_q85_h2_lanczos_3.webp 300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_400x0_resize_q85_h2_lanczos_3.webp 400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_500x0_resize_q85_h2_lanczos_3.webp 500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_600x0_resize_q85_h2_lanczos_3.webp 600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_700x0_resize_q85_h2_lanczos_3.webp 700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_800x0_resize_q85_h2_lanczos_3.webp 800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_900x0_resize_q85_h2_lanczos_3.webp 900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1000x0_resize_q85_h2_lanczos_3.webp 1000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1100x0_resize_q85_h2_lanczos_3.webp 1100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1200x0_resize_q85_h2_lanczos_3.webp 1200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1300x0_resize_q85_h2_lanczos_3.webp 1300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1400x0_resize_q85_h2_lanczos_3.webp 1400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1500x0_resize_q85_h2_lanczos_3.webp 1500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1600x0_resize_q85_h2_lanczos_3.webp 1600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1700x0_resize_q85_h2_lanczos_3.webp 1700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1800x0_resize_q85_h2_lanczos_3.webp 1800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1900x0_resize_q85_h2_lanczos_3.webp 1900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2000x0_resize_q85_h2_lanczos_3.webp 2000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2100x0_resize_q85_h2_lanczos_3.webp 2100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2200x0_resize_q85_h2_lanczos_3.webp 2200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2300x0_resize_q85_h2_lanczos_3.webp 2300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2400x0_resize_q85_h2_lanczos_3.webp 2400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2500x0_resize_q85_h2_lanczos_3.webp 2500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2600x0_resize_q85_h2_lanczos_3.webp 2600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2700x0_resize_q85_h2_lanczos_3.webp 2700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2800x0_resize_q85_h2_lanczos_3.webp 2800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2900x0_resize_q85_h2_lanczos_3.webp 2900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_3000x0_resize_q85_h2_lanczos_3.webp 3000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_3030x0_resize_q100_h2_lanczos_3.webp 3030w'
      sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
    ><div class="imageLoading"></div>
</div></p>
</a>
<h2 id="erasure-coding"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#erasure-coding">Erasure Coding</a></h2><p>For now i think it is okay yo make the erasure coding a simple n6 k3, which would result in a <code>parity block</code> size of 327,680 Bytes or 0.31MB as average. This would result in about 1.875MB per chunk that is 1.25MB big in average. This would result in a 50% overhead for the erasure coding, which i think is quite okay.</p>
<p>For the goal of storing 100TB in it, which are about 400M Chunks, we would need 2,400,000,000 <code>parity block</code>s, aka 2,4 Billion.</p>
<p>If we consider following overhead for the erasure coding:</p>
<details>
  <summary>Parity Meta Data</summary>
    This is the Meta Data for a `parity block`:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;parityHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;chunkHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;sizeByte&#34;</span>: <span style="color:#ae81ff">433000</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;lastChecked&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;reblanceLog&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>],
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;userLog&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>],
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;this is for the KV Key&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></details>
<p>We see that <code>parity block metadata</code> has under 2373 Bytes of overhead, which is about 0.72%% of the <code>parity block</code> size (very good). If one node would need to store the entire hash table we look at a size of 5.18TB, which means that we need a DHT for this to work. This also is the case for the Events, which introduce more storage overhead (more in <a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#dht">DHT</a> )</p>
<h3 id="dht"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#dht">DHT</a></h3><p>We need additional DHT Metadata like this:</p>
<details>
  <summary>DHT Meta Data</summary>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;parityHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;storingNodes&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  ]
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></details>
<p>This example meta data has a size of 674 Bytes, which is about 0.21% of the <code>parity block</code> size. The <code>DHT meta data</code> would require an additional 1.47TB of storage.</p>
<h3 id="overhead"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#overhead">Overhead</a></h3><p><code>DHT meta data</code> in combination with the <code>parity block meta data</code> would have a total overhead of 0.93%% of the <code>erasure coding metadata</code> relative to the <code>erasure coding parity block size</code>, the entire metadata overhead at 100TB and 2,4 Billion <code>parity block</code>s would be 6.65TB.</p>
<p>Adding this to the overhead from the <code>erasure coding</code> which are 50% we would have a total overhead of 56.65% relative to the raw data size. If we have a utilization of each <code>chunk</code> of 1310720 Bits which has been achieved with 10MB files with random binary data. This would result in a HDD to raw data ratio of 43.35% (which is pretty good for a k6n3 config and having self healing capabilities) for following configuration:</p>
<ul>
<li>100TB of raw data</li>
<li>data deduplication via BuzzHash into chunks</li>
<li>chunk compression via Zstd</li>
<li>chunk encryption via AES256</li>
<li>each chunk becomes 6 parity blocks of which 3 can be lost without data loss</li>
</ul>
<h2 id="conclusion"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#conclusion">Conclusion</a></h2><p>I have written a Google Calc Spreadsheet for it, which you can find here: <a href="https://docs.google.com/spreadsheets/d/12Ad4vvA0dLSOffDLz6gMkkIJkYNZE70gY0wI1Qqkg8c/edit?usp=sharing">ouroboros-db Overhead Calculator</a>.</p>
<p>Though this Spreadsheet is neat, i discoverd that i need some surface plotting to find the best configuration for the erasure coding.<br>
Sadly there is no way to do this in Google Calc, so i will need to write a small Browser App for it&hellip; maybe i use Svelte for it, i haven&rsquo;t used it in a while now.</p>
<h2 id="further-reading"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#further-reading">Further Reading</a></h2><p>A good overview over what erasure coding is about: <a href="https://transactional.blog/blog/2024-erasure-coding">Erasure Coding for Distributed Systems</a><br>
Also See <a href="https://news.ycombinator.com/item?id=41361281">HN comments</a></p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a Dev Journal for the Ouroboros DB Project.<br>
I try to write down my thoughts and ideas Somewhat structured to have it as a reference for later and i publish it to give this information a chance to help other and to get feedback from the community.<br>
If you have feedback you can write me on my <a href="https://mastodon.social/@heidenstedt">Mastodon</a>.</p>
<p>Pls note that this is only a Dev Journal and not a Blog Post, so it may be a bit unstructured and not as polished as a Blog Post, including typos and other errors.</p>
<h2 id="tldr"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#tldr">TL;DR:</a></h2><p>Today i worked on a refactoring of the architecture and feasibility of erasure coding for <a href="https://github.com/i5heu/ouroboros-db">Ouroboros DB</a>. There are some concerns i had regarding the potential index size and overhead that will result from it, and as it turns out, it is not as bad as i thought but i need a DHT for the index.</p>
<h2 id="architecture"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#architecture">Architecture</a></h2><p>I think it would be super handy to be able to run parts of data pipelines (eg. storing files into chunked,compressed, encrypted and then erasure coded blocks) in a distributed manner. for safety and because i want to be able to run trustless nodes that can&rsquo;t see the raw data, it would be necessary to have the file chunking, compression and encryption part on the server the client currently speaks too, although it would be possible to pre-chunk the file on the client and upload it to different nodes, although here is the question if it is easy to port the chunking algorithm to browser JS or WASM.</p>
<h3 id="modules"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#modules">Modules</a></h3><p>Refactoring of the code is needed to implement <code>erasure coding</code>, maybe we can even get rid of the <code>chunk</code> entirely as a stored thing since we have the data in the <code>parity block</code>s already.</p>
<p>Maybe best to add the <code>erasure coding</code> to the <code>StoreDataPipeline</code> and add the needed <code>erasure coding</code> metadata to <code>ChunkData</code>.</p>
<p>ASCII Art of the new architecture (click to get the .txt file):</p>
<a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/architecture.txt" target="_blank">
<p><div class="imageLoadingWrap"><img
      loading="lazy"
      src="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_720x0_resize_q85_h2_lanczos_3.webp"
      alt="ASCII Art of the new architecture"
      title="ASCII Art of the new architecture"
      height="871"
      width="3030"
      srcset='/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_100x0_resize_q85_h2_lanczos_3.webp 100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_200x0_resize_q85_h2_lanczos_3.webp 200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_300x0_resize_q85_h2_lanczos_3.webp 300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_400x0_resize_q85_h2_lanczos_3.webp 400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_500x0_resize_q85_h2_lanczos_3.webp 500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_600x0_resize_q85_h2_lanczos_3.webp 600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_700x0_resize_q85_h2_lanczos_3.webp 700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_800x0_resize_q85_h2_lanczos_3.webp 800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_900x0_resize_q85_h2_lanczos_3.webp 900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1000x0_resize_q85_h2_lanczos_3.webp 1000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1100x0_resize_q85_h2_lanczos_3.webp 1100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1200x0_resize_q85_h2_lanczos_3.webp 1200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1300x0_resize_q85_h2_lanczos_3.webp 1300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1400x0_resize_q85_h2_lanczos_3.webp 1400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1500x0_resize_q85_h2_lanczos_3.webp 1500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1600x0_resize_q85_h2_lanczos_3.webp 1600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1700x0_resize_q85_h2_lanczos_3.webp 1700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1800x0_resize_q85_h2_lanczos_3.webp 1800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_1900x0_resize_q85_h2_lanczos_3.webp 1900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2000x0_resize_q85_h2_lanczos_3.webp 2000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2100x0_resize_q85_h2_lanczos_3.webp 2100w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2200x0_resize_q85_h2_lanczos_3.webp 2200w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2300x0_resize_q85_h2_lanczos_3.webp 2300w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2400x0_resize_q85_h2_lanczos_3.webp 2400w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2500x0_resize_q85_h2_lanczos_3.webp 2500w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2600x0_resize_q85_h2_lanczos_3.webp 2600w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2700x0_resize_q85_h2_lanczos_3.webp 2700w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2800x0_resize_q85_h2_lanczos_3.webp 2800w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_2900x0_resize_q85_h2_lanczos_3.webp 2900w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_3000x0_resize_q85_h2_lanczos_3.webp 3000w,/posts/2024/ouroboros-db-dev-journal-erasure-coding/Architecture_hu8ec97601451ce298d71e413e7198ac49_68065_3030x0_resize_q100_h2_lanczos_3.webp 3030w'
      sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
    ><div class="imageLoading"></div>
</div></p>
</a>
<h2 id="erasure-coding"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#erasure-coding">Erasure Coding</a></h2><p>For now i think it is okay yo make the erasure coding a simple n6 k3, which would result in a <code>parity block</code> size of 327,680 Bytes or 0.31MB as average. This would result in about 1.875MB per chunk that is 1.25MB big in average. This would result in a 50% overhead for the erasure coding, which i think is quite okay.</p>
<p>For the goal of storing 100TB in it, which are about 400M Chunks, we would need 2,400,000,000 <code>parity block</code>s, aka 2,4 Billion.</p>
<p>If we consider following overhead for the erasure coding:</p>
<details>
  <summary>Parity Meta Data</summary>
    This is the Meta Data for a `parity block`:
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;parityHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;chunkHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;sizeByte&#34;</span>: <span style="color:#ae81ff">433000</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;lastChecked&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;reblanceLog&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>],
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;userLog&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;time&#34;</span>: <span style="color:#ae81ff">1724760126282</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;from&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>],
</span></span><span style="display:flex;"><span><span style="color:#f92672">&#34;this is for the KV Key&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></details>
<p>We see that <code>parity block metadata</code> has under 2373 Bytes of overhead, which is about 0.72%% of the <code>parity block</code> size (very good). If one node would need to store the entire hash table we look at a size of 5.18TB, which means that we need a DHT for this to work. This also is the case for the Events, which introduce more storage overhead (more in <a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#dht">DHT</a> )</p>
<h3 id="dht"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#dht">DHT</a></h3><p>We need additional DHT Metadata like this:</p>
<details>
  <summary>DHT Meta Data</summary>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;parityHash&#34;</span>: <span style="color:#e6db74">&#34;aeae379a6e857728e44164267fdb7a0e27b205d757cc19899586c89dbb221930f1813d02ff93a661859bc17065eac4d6edf3c38a034e6283a84754d52917e5b0&#34;</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;storingNodes&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;node&#34;</span>: <span style="color:#e6db74">&#34;2deb000b57bfac9d72c14d4ed967b572&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;lastValidated&#34;</span>: <span style="color:#ae81ff">1724760126282</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  ]
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div></details>
<p>This example meta data has a size of 674 Bytes, which is about 0.21% of the <code>parity block</code> size. The <code>DHT meta data</code> would require an additional 1.47TB of storage.</p>
<h3 id="overhead"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#overhead">Overhead</a></h3><p><code>DHT meta data</code> in combination with the <code>parity block meta data</code> would have a total overhead of 0.93%% of the <code>erasure coding metadata</code> relative to the <code>erasure coding parity block size</code>, the entire metadata overhead at 100TB and 2,4 Billion <code>parity block</code>s would be 6.65TB.</p>
<p>Adding this to the overhead from the <code>erasure coding</code> which are 50% we would have a total overhead of 56.65% relative to the raw data size. If we have a utilization of each <code>chunk</code> of 1310720 Bits which has been achieved with 10MB files with random binary data. This would result in a HDD to raw data ratio of 43.35% (which is pretty good for a k6n3 config and having self healing capabilities) for following configuration:</p>
<ul>
<li>100TB of raw data</li>
<li>data deduplication via BuzzHash into chunks</li>
<li>chunk compression via Zstd</li>
<li>chunk encryption via AES256</li>
<li>each chunk becomes 6 parity blocks of which 3 can be lost without data loss</li>
</ul>
<h2 id="conclusion"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#conclusion">Conclusion</a></h2><p>I have written a Google Calc Spreadsheet for it, which you can find here: <a href="https://docs.google.com/spreadsheets/d/12Ad4vvA0dLSOffDLz6gMkkIJkYNZE70gY0wI1Qqkg8c/edit?usp=sharing">ouroboros-db Overhead Calculator</a>.</p>
<p>Though this Spreadsheet is neat, i discoverd that i need some surface plotting to find the best configuration for the erasure coding.<br>
Sadly there is no way to do this in Google Calc, so i will need to write a small Browser App for it&hellip; maybe i use Svelte for it, i haven&rsquo;t used it in a while now.</p>
<h2 id="further-reading"><a href="https://heidenstedt.org/posts/2024/ouroboros-db-dev-journal-erasure-coding/#further-reading">Further Reading</a></h2><p>A good overview over what erasure coding is about: <a href="https://transactional.blog/blog/2024-erasure-coding">Erasure Coding for Distributed Systems</a><br>
Also See <a href="https://news.ycombinator.com/item?id=41361281">HN comments</a></p>
]]></content:encoded></item><item><title>My New Public Service: PathfinderBeacon</title><link>https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/</link><pubDate>Fri, 23 Aug 2024 16:00:00 +0200</pubDate><guid>https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>In the midst of working on my project, <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, I realized I needed a straightforward way to locate other nodes using the same RSA key. That&rsquo;s when <a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> came into being and that i release to the public with these words.</p>
<h2 id="what-is-pathfinderbeacon"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#what-is-pathfinderbeacon">What is PathfinderBeacon?</a></h2><p><a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> is a tool designed to make it easier to bootstrap your distributed systems using just a RSA key and one of the most robust dictionaries available: DNS. Since DNS inherently caches information at various levels, it allows PathfinderBeacon to deliver node addresses quickly and with minimal bandwidth usage. This means if multiple searches are conducted within the same network for the same room, there&rsquo;s a high chance the requests won&rsquo;t even leave your local network, thanks to the caching capabilities of your router&rsquo;s local DNS.</p>
<p>You can think of it like a DDNS (Dynamic Domain Name System) service, but you only need an RSA key to write to a subdomain. The subdomain is generated from the RSA key, and there is little surface for abuse since you can only publish highly sanitized TXT records.</p>
<h2 id="how-it-works"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#how-it-works">How It Works</a></h2><p>Setting up is pretty simple. You either provide an RSA key or let PathfinderBeacon generate one for you. Once set, you can publish your room and node addresses, and anyone with the same RSA key can write to the same room, while anyone can read from it. This makes it easy to bootstrap your distributed systems without the need of running your own bootstrap service.</p>
<p>Currently, there is an official Golang library for interacting with PathfinderBeacon, which you can find <a href="https://github.com/i5heu/PathfinderBeacon-Client-Go">here</a>. If you&rsquo;re interested in developing libraries for other programming languages, feel free to reach out, and I&rsquo;d be glad to assist and subsequently feature your work on the project repository.</p>
<h2 id="future-directions"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#future-directions">Future Directions</a></h2><p>For me this project is pretty much finished since it solves the underlying problem quite effectively, but i am fascinated by this problem and i would love to develop PathfinderBeacon further, maybe even in a distributed thingy without a central server, private rooms and much more is thinkable. You can checkout the <a href="https://github.com/i5heu/PathfinderBeacon?tab=readme-ov-file#potential-future-features-and-ideas">README</a> for more ideas.</p>
<p>So, that’s PathfinderBeacon in a nutshell—a simple, secure way to manage node addresses within distributed systems. It&rsquo;s a small project with big potential, and I&rsquo;m excited to see how it can support and simplify the management of distributed networks.</p>
<p>Thanks for reading, and I’m looking forward to constructive feedback or contributions!</p>
<p>You can find PathfinderBeacon on <a href="https://github.com/i5heu/PathfinderBeacon">GitHub</a></p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>In the midst of working on my project, <a href="https://github.com/i5heu/ouroboros-db">ouroboros-db</a>, I realized I needed a straightforward way to locate other nodes using the same RSA key. That&rsquo;s when <a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> came into being and that i release to the public with these words.</p>
<h2 id="what-is-pathfinderbeacon"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#what-is-pathfinderbeacon">What is PathfinderBeacon?</a></h2><p><a href="https://github.com/i5heu/PathfinderBeacon">PathfinderBeacon</a> is a tool designed to make it easier to bootstrap your distributed systems using just a RSA key and one of the most robust dictionaries available: DNS. Since DNS inherently caches information at various levels, it allows PathfinderBeacon to deliver node addresses quickly and with minimal bandwidth usage. This means if multiple searches are conducted within the same network for the same room, there&rsquo;s a high chance the requests won&rsquo;t even leave your local network, thanks to the caching capabilities of your router&rsquo;s local DNS.</p>
<p>You can think of it like a DDNS (Dynamic Domain Name System) service, but you only need an RSA key to write to a subdomain. The subdomain is generated from the RSA key, and there is little surface for abuse since you can only publish highly sanitized TXT records.</p>
<h2 id="how-it-works"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#how-it-works">How It Works</a></h2><p>Setting up is pretty simple. You either provide an RSA key or let PathfinderBeacon generate one for you. Once set, you can publish your room and node addresses, and anyone with the same RSA key can write to the same room, while anyone can read from it. This makes it easy to bootstrap your distributed systems without the need of running your own bootstrap service.</p>
<p>Currently, there is an official Golang library for interacting with PathfinderBeacon, which you can find <a href="https://github.com/i5heu/PathfinderBeacon-Client-Go">here</a>. If you&rsquo;re interested in developing libraries for other programming languages, feel free to reach out, and I&rsquo;d be glad to assist and subsequently feature your work on the project repository.</p>
<h2 id="future-directions"><a href="https://heidenstedt.org/posts/2024/my-new-public-service-pathfinderbeacon/#future-directions">Future Directions</a></h2><p>For me this project is pretty much finished since it solves the underlying problem quite effectively, but i am fascinated by this problem and i would love to develop PathfinderBeacon further, maybe even in a distributed thingy without a central server, private rooms and much more is thinkable. You can checkout the <a href="https://github.com/i5heu/PathfinderBeacon?tab=readme-ov-file#potential-future-features-and-ideas">README</a> for more ideas.</p>
<p>So, that’s PathfinderBeacon in a nutshell—a simple, secure way to manage node addresses within distributed systems. It&rsquo;s a small project with big potential, and I&rsquo;m excited to see how it can support and simplify the management of distributed networks.</p>
<p>Thanks for reading, and I’m looking forward to constructive feedback or contributions!</p>
<p>You can find PathfinderBeacon on <a href="https://github.com/i5heu/PathfinderBeacon">GitHub</a></p>
]]></content:encoded></item><item><title>DETAILS part 2, a image series</title><link>https://heidenstedt.org/posts/2024/details-part-2-a-image-series/</link><pubDate>Thu, 04 Apr 2024 09:17:10 +0000</pubDate><guid>https://heidenstedt.org/posts/2024/details-part-2-a-image-series/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Berlin.</p>


Total images: 9



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/1.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2861x0_resize_q100_h2_lanczos_3.webp 2861w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/1.png"
            height="2861"
            width="2861">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/2.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1723x0_resize_q100_h2_lanczos_3.webp 1723w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/2.png"
            height="1723"
            width="1723">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/3.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/3.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/4.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_3314x0_resize_q100_h2_lanczos_3.webp 3314w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/4.png"
            height="3314"
            width="3314">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/5.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_2027x0_resize_q100_h2_lanczos_3.webp 2027w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/5.png"
            height="2027"
            width="2027">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/6.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/6.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/7.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2562x0_resize_q100_h2_lanczos_3.webp 2562w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/7.png"
            height="2562"
            width="2562">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/8.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/8.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/9.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2734x0_resize_q100_h2_lanczos_3.webp 2734w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/9.png"
            height="2734"
            width="2734">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Berlin.</p>


Total images: 9



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/1.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_2861x0_resize_q100_h2_lanczos_3.webp 2861w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/1_hu601c8c5fb072bfb30ae989eccb599b45_40344909_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/1.png"
            height="2861"
            width="2861">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/2.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_1723x0_resize_q100_h2_lanczos_3.webp 1723w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/2_huaced11da29294e96b9423dab0263abaf_3508858_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/2.png"
            height="1723"
            width="1723">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/3.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/3_hu9ac6ac0a519eed98a6aaecddbcd475a4_18882777_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/3.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/4.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_3314x0_resize_q100_h2_lanczos_3.webp 3314w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/4_hu22399882a4a403786e573b070afa660b_12018095_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/4.png"
            height="3314"
            width="3314">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/5.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_2027x0_resize_q100_h2_lanczos_3.webp 2027w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/5_hu8bf1148ffa18a6dc4f8f97f882b4d56b_4856712_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/5.png"
            height="2027"
            width="2027">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/6.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/6_hu9ac6ac0a519eed98a6aaecddbcd475a4_19341687_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/6.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/7.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_2562x0_resize_q100_h2_lanczos_3.webp 2562w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/7_hu029528c153f4b68fc9b736a3eaacdddd_7394364_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/7.png"
            height="2562"
            width="2562">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/8.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_4160x0_resize_q100_h2_lanczos_3.webp 4160w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/8_hu9ac6ac0a519eed98a6aaecddbcd475a4_14306990_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/8.png"
            height="4160"
            width="4160">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/9.png">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_500x0_resize_q95_h2_lanczos_3.webp 500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_1000x0_resize_q95_h2_lanczos_3.webp 1000w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_1500x0_resize_q95_h2_lanczos_3.webp 1500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2000x0_resize_q95_h2_lanczos_3.webp 2000w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2500x0_resize_q95_h2_lanczos_3.webp 2500w,/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_2734x0_resize_q100_h2_lanczos_3.webp 2734w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-2-a-image-series/img/9_hu29fe3e4a04d4afe297bb63e81534c596_7616862_300x0_resize_q85_h2_lanczos_3.webp"
            alt="img/9.png"
            height="2734"
            width="2734">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></content:encoded></item><item><title>DETAILS part 1, a image series</title><link>https://heidenstedt.org/posts/2024/details-part-1-a-image-series/</link><pubDate>Mon, 05 Feb 2024 11:17:10 +0000</pubDate><guid>https://heidenstedt.org/posts/2024/details-part-1-a-image-series/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Switzerland.</p>


Total images: 48



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/1.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_300x0_resize_q85_h2_lanczos.webp"
            alt="img/1.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/10.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_300x0_resize_q85_h2_lanczos.webp"
            alt="img/10.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/11.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_300x0_resize_q85_h2_lanczos.webp"
            alt="img/11.jpeg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/12.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_300x0_resize_q85_h2_lanczos.webp"
            alt="img/12.jpeg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/13.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_300x0_resize_q85_h2_lanczos.webp"
            alt="img/13.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/14.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_300x0_resize_q85_h2_lanczos.webp"
            alt="img/14.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/15.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_300x0_resize_q85_h2_lanczos.webp"
            alt="img/15.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/16.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_300x0_resize_q85_h2_lanczos.webp"
            alt="img/16.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/17.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_300x0_resize_q85_h2_lanczos.webp"
            alt="img/17.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/18.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_4032x0_resize_q100_h2_lanczos.webp 4032w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_300x0_resize_q85_h2_lanczos.webp"
            alt="img/18.jpeg"
            height="3024"
            width="4032">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/19.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_300x0_resize_q85_h2_lanczos.webp"
            alt="img/19.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/2.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_300x0_resize_q85_h2_lanczos.webp"
            alt="img/2.jpeg"
            height="1800"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/20.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_300x0_resize_q85_h2_lanczos.webp"
            alt="img/20.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/21.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_300x0_resize_q85_h2_lanczos.webp"
            alt="img/21.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/22.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_300x0_resize_q85_h2_lanczos.webp"
            alt="img/22.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/23.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_300x0_resize_q85_h2_lanczos.webp"
            alt="img/23.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/24.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_300x0_resize_q85_h2_lanczos.webp"
            alt="img/24.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/25.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_300x0_resize_q85_h2_lanczos.webp"
            alt="img/25.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/26.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_300x0_resize_q85_h2_lanczos.webp"
            alt="img/26.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/27.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_300x0_resize_q85_h2_lanczos.webp"
            alt="img/27.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/28.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_300x0_resize_q85_h2_lanczos.webp"
            alt="img/28.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/29.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_300x0_resize_q85_h2_lanczos.webp"
            alt="img/29.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/30.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_2047x0_resize_q100_h2_lanczos.webp 2047w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_300x0_resize_q85_h2_lanczos.webp"
            alt="img/30.jpeg"
            height="1536"
            width="2047">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/31.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_300x0_resize_q85_h2_lanczos.webp"
            alt="img/31.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/32.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_300x0_resize_q85_h2_lanczos.webp"
            alt="img/32.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/33.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_300x0_resize_q85_h2_lanczos.webp"
            alt="img/33.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/34.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_300x0_resize_q85_h2_lanczos.webp"
            alt="img/34.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/35.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_300x0_resize_q85_h2_lanczos.webp"
            alt="img/35.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/36.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_300x0_resize_q85_h2_lanczos.webp"
            alt="img/36.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/38.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_300x0_resize_q85_h2_lanczos.webp"
            alt="img/38.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/39.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_300x0_resize_q85_h2_lanczos.webp"
            alt="img/39.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/4.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_300x0_resize_q85_h2_lanczos.webp"
            alt="img/4.jpeg"
            height="1800"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/40.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_300x0_resize_q85_h2_lanczos.webp"
            alt="img/40.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/41.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_300x0_resize_q85_h2_lanczos.webp"
            alt="img/41.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/42.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_300x0_resize_q85_h2_lanczos.webp"
            alt="img/42.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/43.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_300x0_resize_q85_h2_lanczos.webp"
            alt="img/43.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/44.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_300x0_resize_q85_h2_lanczos.webp"
            alt="img/44.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/45.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_300x0_resize_q85_h2_lanczos.webp"
            alt="img/45.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/46.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_300x0_resize_q85_h2_lanczos.webp"
            alt="img/46.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/47.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_300x0_resize_q85_h2_lanczos.webp"
            alt="img/47.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/48.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_300x0_resize_q85_h2_lanczos.webp"
            alt="img/48.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/49.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_300x0_resize_q85_h2_lanczos.webp"
            alt="img/49.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/5.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_300x0_resize_q85_h2_lanczos.webp"
            alt="img/5.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/50.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_300x0_resize_q85_h2_lanczos.webp"
            alt="img/50.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/6.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_300x0_resize_q85_h2_lanczos.webp"
            alt="img/6.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/7.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_300x0_resize_q85_h2_lanczos.webp"
            alt="img/7.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/8.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_300x0_resize_q85_h2_lanczos.webp"
            alt="img/8.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/9.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_300x0_resize_q85_h2_lanczos.webp"
            alt="img/9.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>This is a street photography series captured during my travels and excursions. I am considering selling prints of these images, but none currently exist. If you would like a print version of my work, please contact me and we can discuss the details.</p>
<p>Street photography featuring scenes across Switzerland.</p>


Total images: 48



  <style>
    .gallery {
        margin: 1em 0;
    }
    .noMaxHeight {
      max-height: none !important;
    }
  </style>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/1.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/1_hu1c06b7839398d8b89634697817fae121_936136_300x0_resize_q85_h2_lanczos.webp"
            alt="img/1.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/10.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/10_hue69fd07abb05dd5ff70a4c0ae276bd0d_346900_300x0_resize_q85_h2_lanczos.webp"
            alt="img/10.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/11.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/11_hu52ec61c8c34e4877f15c9dc9d68ef6a9_16065836_300x0_resize_q85_h2_lanczos.webp"
            alt="img/11.jpeg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/12.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_6240x0_resize_q100_h2_lanczos.webp 6240w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/12_hu53a84a785a8afe3bd616a34e6730c5e8_12365174_300x0_resize_q85_h2_lanczos.webp"
            alt="img/12.jpeg"
            height="4160"
            width="6240">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/13.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/13_hu9124b9af9e0259e33e558f077647e4c4_133592_300x0_resize_q85_h2_lanczos.webp"
            alt="img/13.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/14.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/14_hu9a2a13452c30f9a7ec3c3659dc3df925_813403_300x0_resize_q85_h2_lanczos.webp"
            alt="img/14.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/15.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/15_hu20546190c83b63def075ca449f845123_1429909_300x0_resize_q85_h2_lanczos.webp"
            alt="img/15.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/16.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/16_hud232337cf92292d8a9a52f6331aebbce_729256_300x0_resize_q85_h2_lanczos.webp"
            alt="img/16.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/17.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/17_hu09d4e1c7865b8022372a25381cc6cada_765851_300x0_resize_q85_h2_lanczos.webp"
            alt="img/17.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/18.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_2500x0_resize_q95_h2_lanczos.webp 2500w,/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_4032x0_resize_q100_h2_lanczos.webp 4032w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/18_hu29ae0b20235496b16fbb5ddb1f19cd67_3004291_300x0_resize_q85_h2_lanczos.webp"
            alt="img/18.jpeg"
            height="3024"
            width="4032">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/19.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/19_hu427c0af205ae3b530ce05ca8a74375bd_522375_300x0_resize_q85_h2_lanczos.webp"
            alt="img/19.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/2.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/2_hu8d818b15bb573f77489428d79efab0bd_963690_300x0_resize_q85_h2_lanczos.webp"
            alt="img/2.jpeg"
            height="1800"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/20.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/20_hud3a033806080d18f43119fee0cc2d703_673992_300x0_resize_q85_h2_lanczos.webp"
            alt="img/20.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/21.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/21_hud3a42bfc886d10f58ee756ef95e17968_1107560_300x0_resize_q85_h2_lanczos.webp"
            alt="img/21.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/22.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/22_hu87296c4d023b747b0fec6c66c985ccd4_910503_300x0_resize_q85_h2_lanczos.webp"
            alt="img/22.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/23.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/23_hu80d47c85832bacca02a546e5fa0a59a7_669648_300x0_resize_q85_h2_lanczos.webp"
            alt="img/23.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/24.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/24_hube3e6c3da838536331ce1ca962f20737_592868_300x0_resize_q85_h2_lanczos.webp"
            alt="img/24.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/25.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/25_hu44e6be74df0dc36efa9261236eba5790_635088_300x0_resize_q85_h2_lanczos.webp"
            alt="img/25.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/26.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/26_hud31a33c98bbf874bea6eae2e41f64cbd_206047_300x0_resize_q85_h2_lanczos.webp"
            alt="img/26.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/27.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/27_hud1832102d4ead179acb359f1210f3ee4_559570_300x0_resize_q85_h2_lanczos.webp"
            alt="img/27.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/28.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/28_hu7f0936abfb9d61430d8f3e442461c4f1_717389_300x0_resize_q85_h2_lanczos.webp"
            alt="img/28.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/29.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/29_hube87d4233abb368edc52179eab058506_902063_300x0_resize_q85_h2_lanczos.webp"
            alt="img/29.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/30.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_2047x0_resize_q100_h2_lanczos.webp 2047w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/30_hu34e4713cb4fafc2296f89f8fa859f1fa_398493_300x0_resize_q85_h2_lanczos.webp"
            alt="img/30.jpeg"
            height="1536"
            width="2047">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/31.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/31_hu781bf73dea58d62d9fb5675995eaccce_942195_300x0_resize_q85_h2_lanczos.webp"
            alt="img/31.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/32.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/32_huf92d669f8e0faad910315762f8e0022f_1218795_300x0_resize_q85_h2_lanczos.webp"
            alt="img/32.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/33.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/33_huef67c7ec850801e5a65335667dbe069a_931281_300x0_resize_q85_h2_lanczos.webp"
            alt="img/33.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/34.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/34_hu8f1d609cf2dc892602d598eac8068370_741380_300x0_resize_q85_h2_lanczos.webp"
            alt="img/34.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/35.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/35_huf9aa56a5ae54f52249a1acf722622664_1336285_300x0_resize_q85_h2_lanczos.webp"
            alt="img/35.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/36.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/36_hu3e10ad46c05b75bf6ec5cbd4120e0e23_432698_300x0_resize_q85_h2_lanczos.webp"
            alt="img/36.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/38.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/38_hu88f02bbd3d5fc56ca217266787ecc655_417797_300x0_resize_q85_h2_lanczos.webp"
            alt="img/38.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/39.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/39_hu6d7fbfc5432065f50440820a76270904_921913_300x0_resize_q85_h2_lanczos.webp"
            alt="img/39.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/4.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/4_hub72720baf5af3326e1a43361127656d1_535141_300x0_resize_q85_h2_lanczos.webp"
            alt="img/4.jpeg"
            height="1800"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/40.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/40_hu46c5059467e64ab0fdca96729fc98446_577378_300x0_resize_q85_h2_lanczos.webp"
            alt="img/40.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/41.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/41_hu6128120e164644f45a88926cce475028_171987_300x0_resize_q85_h2_lanczos.webp"
            alt="img/41.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/42.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/42_hu1d663485e6a539ebfec7a5fd9f858612_225893_300x0_resize_q85_h2_lanczos.webp"
            alt="img/42.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/43.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/43_huee72db41f6152c803769a651171f2160_530989_300x0_resize_q85_h2_lanczos.webp"
            alt="img/43.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/44.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/44_hudfd07f0781b6522a2fda16816a885568_284718_300x0_resize_q85_h2_lanczos.webp"
            alt="img/44.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/45.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_2000x0_resize_q95_h2_lanczos.webp 2000w,/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_2048x0_resize_q100_h2_lanczos.webp 2048w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/45_hube819bfb47d00f2a877c6e4086b187b0_410082_300x0_resize_q85_h2_lanczos.webp"
            alt="img/45.jpeg"
            height="1536"
            width="2048">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/46.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/46_hufa2e6f43efacf7b566ad450b2ffca661_493395_300x0_resize_q85_h2_lanczos.webp"
            alt="img/46.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/47.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/47_hu42f5e8c1f2b984d369b82a19ffd18cd8_671906_300x0_resize_q85_h2_lanczos.webp"
            alt="img/47.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/48.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/48_hu383929b36d9c7b7316498f81608aa6b1_1100227_300x0_resize_q85_h2_lanczos.webp"
            alt="img/48.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/49.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/49_hu82871481a3a1b43f9d7c4168f3ca28f1_726388_300x0_resize_q85_h2_lanczos.webp"
            alt="img/49.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/5.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/5_hu32cc1614603d2e261a01b95c0639c956_490146_300x0_resize_q85_h2_lanczos.webp"
            alt="img/5.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/50.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1500x0_resize_q95_h2_lanczos.webp 1500w,/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_1536x0_resize_q100_h2_lanczos.webp 1536w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/50_hu63e8ef9172726f3e86fb4cba0cb48c3f_524132_300x0_resize_q85_h2_lanczos.webp"
            alt="img/50.jpeg"
            height="2048"
            width="1536">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/6.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/6_huf98ccd8224733f3452802225cf9a21e9_335481_300x0_resize_q85_h2_lanczos.webp"
            alt="img/6.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/7.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/7_hu97531c6a9163b872d439f94bdcfb6dc2_545231_300x0_resize_q85_h2_lanczos.webp"
            alt="img/7.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/8.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/8_hud3b5eb2549d50726b343e16f4e965aa4_314304_300x0_resize_q85_h2_lanczos.webp"
            alt="img/8.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  
    <div class="imageLoadingWrap noMaxHeight gallery">
      <a href="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/9.jpeg">
        
        
            
            
            
            
            
        
            
            
            
            
            
        
            
            
        
            
            
        
            
            
        
        
        

        <img srcset="/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_500x0_resize_q95_h2_lanczos.webp 500w,/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_1000x0_resize_q95_h2_lanczos.webp 1000w,/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_1440x0_resize_q100_h2_lanczos.webp 1440w"
            sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
            loading="lazy"
            src="https://heidenstedt.org/posts/2024/details-part-1-a-image-series/img/9_hu785df608c8168f2f98dc448e7b6e9c6d_240597_300x0_resize_q85_h2_lanczos.webp"
            alt="img/9.jpeg"
            height="1440"
            width="1440">
        <div class="imageLoading"></div>
      </a>
    </div>
  


]]></content:encoded></item><item><title>Blog Infrastructure Update 2</title><link>https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/</link><pubDate>Wed, 03 Aug 2022 21:17:10 +0200</pubDate><guid>https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>Sadly i did&rsquo;t saved measurements form before the migration to the new Infrastructure. I will do better next time ;)</p>
<p>My blog has experienced a major infrastructure update.<br>
Previously this blog was served by a tiny but highly optimized server at a Hetzner datacenter.<br>
Since this blog is static it was for example possible to pre-compress the files, which shaved a massive 1-0.5ms from a cold TTBF.</p>
<p>Sadly this approach was a bit flawed because outside of germany the cold TTBF times weren&rsquo;t exactly good.<br>
Surprisingly CloudFlare did nothing to these times, since the cache of CloudFlare is short lived and not prefetched.</p>
<p>My solution to this problem, to make a global low cold TTBF possible, was BunnyCDN which provides a Service that can store and server static file, these files are replicated Globally to user-selectable locations.<br>
At my case (i use all locations), the price per GB per month is 0.28$ which is very good if you consider that all content is replicated and served from SSDs in 14 locations.</p>
<p><div class="imageLoadingWrap"><img
      loading="lazy"
      src="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_720x0_resize_q85_h2_lanczos_3.webp"
      alt="A graph showing 14 locations of the SSDs"
      title="A graph showing 14 locations of the SSDs"
      height="640"
      width="1050"
      srcset='/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_100x0_resize_q85_h2_lanczos_3.webp 100w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_200x0_resize_q85_h2_lanczos_3.webp 200w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_300x0_resize_q85_h2_lanczos_3.webp 300w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_400x0_resize_q85_h2_lanczos_3.webp 400w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_500x0_resize_q85_h2_lanczos_3.webp 500w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_600x0_resize_q85_h2_lanczos_3.webp 600w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_700x0_resize_q85_h2_lanczos_3.webp 700w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_800x0_resize_q85_h2_lanczos_3.webp 800w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_900x0_resize_q85_h2_lanczos_3.webp 900w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_1000x0_resize_q85_h2_lanczos_3.webp 1000w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_1050x0_resize_q100_h2_lanczos_3.webp 1050w'
      sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
    ><div class="imageLoading"></div>
</div></p>
<p>Here you can see where these locations are, green is the &ldquo;main storage zone&rdquo;, which is not configurable.</p>
<p>The switch to BunnyCDN gave me a immense performance boost around the world, and surprisingly also in germany.<br>
BunnyCDN dose not allow for rsync or something usable to transfer the Files to them.</p>
<p>I use <code>lftp</code> to transfer the files via FTP, which takes about 9 min each time. This is tbh shitty, and i don&rsquo;t like it a bit.</p>
<h2 id="dns-and-peering"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#dns-and-peering">DNS and Peering</a></h2><p>Sadly BunnyCDN dose not allow to use them as a nameServer, also i have to use a c-name to hook up to their CDN.<br>
Cloudflare on the other side acts as a nameservers and returns direct IPv4s and IPv6s on the DNS-query, this will save 1 DNS-Request and is therefore faster, especially since most users using the DNS-Server from their ISP which are often very slow.</p>
<p>So i tried to put CloudFlare in front of BunnyCDN, which had a negative impact on the TTFB, although not a great one.<br>
In same cases it is faster to get a uncached page on BunnyCDN through CloudFlare because CloudFlare has a lot and very good peering to ISPs and exchanges.</p>
<p>Sadly CloudFlare TTBF behaves a unpredictable.<br>
It can be that you get in one request 20ms TTFB and the next one takes 300ms.</p>
<p>I think i will run CloudFlare anyway in front of BunnyCDN in hope to better mitigate Attacks and big page visit numbers.<br>
I hope that CloudFlare will cache such surges for me&hellip; they can become expensive.</p>
<h2 id="costs"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#costs">Costs</a></h2><p>This entire setup cost me less then 1$ per Month (without the Domain), which is very very cheap for something this fast.<br>
I think it is amazing how cheap and easy you can distribute your ideas and thoughts today, without relining on a platform that appropriates your content.</p>
<h2 id="conclusion"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#conclusion">Conclusion</a></h2><p>Costs less then 1$ per Month.<br>
Scales amazingly.<br>
Very fast global latency.<br>
I don&rsquo;t have to keep a server updated.</p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>Sadly i did&rsquo;t saved measurements form before the migration to the new Infrastructure. I will do better next time ;)</p>
<p>My blog has experienced a major infrastructure update.<br>
Previously this blog was served by a tiny but highly optimized server at a Hetzner datacenter.<br>
Since this blog is static it was for example possible to pre-compress the files, which shaved a massive 1-0.5ms from a cold TTBF.</p>
<p>Sadly this approach was a bit flawed because outside of germany the cold TTBF times weren&rsquo;t exactly good.<br>
Surprisingly CloudFlare did nothing to these times, since the cache of CloudFlare is short lived and not prefetched.</p>
<p>My solution to this problem, to make a global low cold TTBF possible, was BunnyCDN which provides a Service that can store and server static file, these files are replicated Globally to user-selectable locations.<br>
At my case (i use all locations), the price per GB per month is 0.28$ which is very good if you consider that all content is replicated and served from SSDs in 14 locations.</p>
<p><div class="imageLoadingWrap"><img
      loading="lazy"
      src="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_720x0_resize_q85_h2_lanczos_3.webp"
      alt="A graph showing 14 locations of the SSDs"
      title="A graph showing 14 locations of the SSDs"
      height="640"
      width="1050"
      srcset='/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_100x0_resize_q85_h2_lanczos_3.webp 100w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_200x0_resize_q85_h2_lanczos_3.webp 200w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_300x0_resize_q85_h2_lanczos_3.webp 300w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_400x0_resize_q85_h2_lanczos_3.webp 400w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_500x0_resize_q85_h2_lanczos_3.webp 500w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_600x0_resize_q85_h2_lanczos_3.webp 600w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_700x0_resize_q85_h2_lanczos_3.webp 700w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_800x0_resize_q85_h2_lanczos_3.webp 800w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_900x0_resize_q85_h2_lanczos_3.webp 900w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_1000x0_resize_q85_h2_lanczos_3.webp 1000w,/posts/2022/blog-infrastructure-update-2/bunny_cdn_storage_regions_hue3c2da51ef64ecde27ed02b457e14d55_343919_1050x0_resize_q100_h2_lanczos_3.webp 1050w'
      sizes="(max-width: 672px) calc(100vw - 32px), (max-width: 736px) 640px, 624px"
    ><div class="imageLoading"></div>
</div></p>
<p>Here you can see where these locations are, green is the &ldquo;main storage zone&rdquo;, which is not configurable.</p>
<p>The switch to BunnyCDN gave me a immense performance boost around the world, and surprisingly also in germany.<br>
BunnyCDN dose not allow for rsync or something usable to transfer the Files to them.</p>
<p>I use <code>lftp</code> to transfer the files via FTP, which takes about 9 min each time. This is tbh shitty, and i don&rsquo;t like it a bit.</p>
<h2 id="dns-and-peering"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#dns-and-peering">DNS and Peering</a></h2><p>Sadly BunnyCDN dose not allow to use them as a nameServer, also i have to use a c-name to hook up to their CDN.<br>
Cloudflare on the other side acts as a nameservers and returns direct IPv4s and IPv6s on the DNS-query, this will save 1 DNS-Request and is therefore faster, especially since most users using the DNS-Server from their ISP which are often very slow.</p>
<p>So i tried to put CloudFlare in front of BunnyCDN, which had a negative impact on the TTFB, although not a great one.<br>
In same cases it is faster to get a uncached page on BunnyCDN through CloudFlare because CloudFlare has a lot and very good peering to ISPs and exchanges.</p>
<p>Sadly CloudFlare TTBF behaves a unpredictable.<br>
It can be that you get in one request 20ms TTFB and the next one takes 300ms.</p>
<p>I think i will run CloudFlare anyway in front of BunnyCDN in hope to better mitigate Attacks and big page visit numbers.<br>
I hope that CloudFlare will cache such surges for me&hellip; they can become expensive.</p>
<h2 id="costs"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#costs">Costs</a></h2><p>This entire setup cost me less then 1$ per Month (without the Domain), which is very very cheap for something this fast.<br>
I think it is amazing how cheap and easy you can distribute your ideas and thoughts today, without relining on a platform that appropriates your content.</p>
<h2 id="conclusion"><a href="https://heidenstedt.org/posts/2022/blog-infrastructure-update-2/#conclusion">Conclusion</a></h2><p>Costs less then 1$ per Month.<br>
Scales amazingly.<br>
Very fast global latency.<br>
I don&rsquo;t have to keep a server updated.</p>
]]></content:encoded></item><item><title>Poverty and Financial Goals with Inflation</title><link>https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/</link><pubDate>Wed, 08 Jun 2022 11:17:10 +0000</pubDate><guid>https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/</guid><description><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>A while ago, I decided to work towards certain financial goals in order to have a buffer for bad times. Through some friends and acquaintances, I&rsquo;ve seen very clearly how difficult it is to get back on your feet from a financially challenging situation. Being poor is incredibly expensive. Here, the relative impact on the basis for existence is particularly visible. If I overlook a bill and have to pay a 5€ reminder fee, I don&rsquo;t even notice it in my daily life&hellip; not even a Starbucks coffee&hellip; In a difficult financial situation, this can mean a day without food.</p>
<p>This extends to dimensions such as &ldquo;I can&rsquo;t get an account with a bank and have to find an employer who can pay me with a physical wage packet,&rdquo; to &ldquo;I am forced to go to jail because my wage garnishment takes so much money that I can no longer afford the DB (Deutsche Bahn) ticket and I can&rsquo;t possibly pay the court fine for &lsquo;fare evasion&rsquo; in addition.&rdquo;</p>
<p>Being poor is very, very expensive and incredibly unfair, and you are subject to massive arbitrariness.</p>
<p>One of my biggest fears is to get into such a practically hopeless situation, from which there is very rarely an escape.</p>
<p>So I&rsquo;ve decided to save a certain amount of money that can keep me afloat for a while and afford investments like &ldquo;I need a car for this job because the job is in the countryside.&rdquo;</p>
<p>I thought that about 50,000€ should suffice to survive pretty much any financial blow, at least in the short and medium term.</p>
<blockquote>
<p>Note: This is purely an arbitrary estimate of mine, a gut feeling.
I think this value is very dependent on the risk you carry in life.
So, for example, &ldquo;Do I absolutely need a car&rdquo;, &ldquo;Is my house well insured&rdquo;, &ldquo;Do I have a child&rdquo;, &ldquo;How many long-term contracts do I have?&rdquo;, etc.
These are all risks that need to be cushioned in the event of job loss or the loss of work capacity.
You should plan at least enough money so that you are able to reduce your expenses to fit into basic security, and that can take quite a long time, as with expensive mobile phone contracts, for example.</p>
</blockquote>
<h2 id="inflation"><a href="https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/#inflation">Inflation</a></h2><p>Now we have the problem that the counter value of, for example, 50k€ decreases with inflation.
Since we don&rsquo;t just set a number and that&rsquo;s enough, we&rsquo;re essentially saving for performance that is available to us in case of need, we want to include inflation in these 50k€. After some searching, I came across the &ldquo;<a href="https://en.wikipedia.org/wiki/Harmonised_Index_of_Consumer_Prices">HICP(2005-06)</a>&rdquo; index, which indicates the value development of the euro in relation to 06.2005. Today, on June 8, 2022, the last determined HICP is at 136.8. So we have to provide 136.8% of the money value of 2005 to get the same performance. To make the calculation faster and to have a simple, good source for the HICP, I built a small tool and pre-calculated some values: <a href="https://i5heu.github.io/HICP-calculator/index.html">https://i5heu.github.io/HICP-calculator/index.html</a></p>
<p>50k€ in 2005 are today 68,400€.</p>
]]></description><content:encoded><![CDATA[<p>
      <em>Best viewed on the <a href="https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/">original page</a>, where extended functionality like the
    footnote helper is available.</em>
    </p><p>A while ago, I decided to work towards certain financial goals in order to have a buffer for bad times. Through some friends and acquaintances, I&rsquo;ve seen very clearly how difficult it is to get back on your feet from a financially challenging situation. Being poor is incredibly expensive. Here, the relative impact on the basis for existence is particularly visible. If I overlook a bill and have to pay a 5€ reminder fee, I don&rsquo;t even notice it in my daily life&hellip; not even a Starbucks coffee&hellip; In a difficult financial situation, this can mean a day without food.</p>
<p>This extends to dimensions such as &ldquo;I can&rsquo;t get an account with a bank and have to find an employer who can pay me with a physical wage packet,&rdquo; to &ldquo;I am forced to go to jail because my wage garnishment takes so much money that I can no longer afford the DB (Deutsche Bahn) ticket and I can&rsquo;t possibly pay the court fine for &lsquo;fare evasion&rsquo; in addition.&rdquo;</p>
<p>Being poor is very, very expensive and incredibly unfair, and you are subject to massive arbitrariness.</p>
<p>One of my biggest fears is to get into such a practically hopeless situation, from which there is very rarely an escape.</p>
<p>So I&rsquo;ve decided to save a certain amount of money that can keep me afloat for a while and afford investments like &ldquo;I need a car for this job because the job is in the countryside.&rdquo;</p>
<p>I thought that about 50,000€ should suffice to survive pretty much any financial blow, at least in the short and medium term.</p>
<blockquote>
<p>Note: This is purely an arbitrary estimate of mine, a gut feeling.
I think this value is very dependent on the risk you carry in life.
So, for example, &ldquo;Do I absolutely need a car&rdquo;, &ldquo;Is my house well insured&rdquo;, &ldquo;Do I have a child&rdquo;, &ldquo;How many long-term contracts do I have?&rdquo;, etc.
These are all risks that need to be cushioned in the event of job loss or the loss of work capacity.
You should plan at least enough money so that you are able to reduce your expenses to fit into basic security, and that can take quite a long time, as with expensive mobile phone contracts, for example.</p>
</blockquote>
<h2 id="inflation"><a href="https://heidenstedt.org/posts/2022/poverty-and-financial-goals-with-inflation/#inflation">Inflation</a></h2><p>Now we have the problem that the counter value of, for example, 50k€ decreases with inflation.
Since we don&rsquo;t just set a number and that&rsquo;s enough, we&rsquo;re essentially saving for performance that is available to us in case of need, we want to include inflation in these 50k€. After some searching, I came across the &ldquo;<a href="https://en.wikipedia.org/wiki/Harmonised_Index_of_Consumer_Prices">HICP(2005-06)</a>&rdquo; index, which indicates the value development of the euro in relation to 06.2005. Today, on June 8, 2022, the last determined HICP is at 136.8. So we have to provide 136.8% of the money value of 2005 to get the same performance. To make the calculation faster and to have a simple, good source for the HICP, I built a small tool and pre-calculated some values: <a href="https://i5heu.github.io/HICP-calculator/index.html">https://i5heu.github.io/HICP-calculator/index.html</a></p>
<p>50k€ in 2005 are today 68,400€.</p>
]]></content:encoded></item></channel></rss>