<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://www.yellowduck.be/pretty-atom-feed-v3.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <link rel="alternate" href="https://www.yellowduck.be"/>
  <link rel="self" href="https://www.yellowduck.be/posts/feed"/>
  <author>
    <name>Pieter Claerhout</name>
    <email>pieter@yellowduck.be</email>
  </author>
  <id>https://www.yellowduck.be/posts/feed</id>
  <title>🐥 YellowDuck.be</title>
  <updated>2026-07-15T13:00:00Z</updated>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/when-ai-costs-more-than-the-engineer"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Anthropic spends an astonishing 2.3 times its payroll on compute, averaging $515,000 per engineer annually against a typical fully-loaded salary of $224,000. The article dives into the computational expenditures of top AI firms compared to the broader software market. For context, while leading companies allocate $89,000 per engineer on AI tools, the median sits at just $137. Three scenarios are presented for how this spending gap could close by 2029. The Bull case predicts a future where AI costs per engineer soar to levels matching a full SaaS employee&apos;s contribution, emphasizing a dramatic shift in the cost structures of AI-native firms. With companies like Anthropic and OpenAI already leading with high revenue-per-employee, the implications for the broader market are substantial. As the intersection of salary and AI expenditure becomes crucial, the article urges readers to consider their strategic position in this evolving landscape.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://tomtunguz.com/ai-spend-breakeven-2029/&quot;&gt;Continue reading on &lt;strong&gt;tomtunguz.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-15T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/when-ai-costs-more-than-the-engineer</id>
    <title>🔗 When AI costs more than the engineer</title>
    <updated>2026-07-15T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/introducing-podman-v6-0-0"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Podman v6.0.0 has landed, bringing substantial improvements to container management. This release modernizes networking with the transition to Netavark and nftables, enhancing security and user experience. Significant updates to Podman Machine ensure seamless operations across VM providers, while the revamped quadlet features make management easier with new REST API support. The updated configuration file handling improves multi-user administration, and compatibility with Docker has been refined to ease transitions. Users are encouraged to explore these features and share feedback, highlighting the community&apos;s role in the project&apos;s success.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blog.podman.io/2026/07/introducing-podman-v6-0-0/&quot;&gt;Continue reading on &lt;strong&gt;blog.podman.io&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/announcement&quot;&gt;#announcement&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/docker&quot;&gt;#docker&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-15T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/introducing-podman-v6-0-0</id>
    <title>🔗 Introducing Podman v6.0.0</title>
    <updated>2026-07-15T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/understanding-is-the-new-bottleneck"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Agents are increasingly handling code generation, leading to a growing gap in human understanding. This article delivers insights from a talk presented at the AI Engineer conference which argues why comprehending the code written by AI is becoming essential. Techniques for fostering this understanding include employing structured code explainers, interactive quizzes to ensure comprehension, and creating micro-worlds that simulate coding environments. By actively engaging with these strategies, individuals can not only verify what their agents produce but also participate meaningfully in the creative process. With AI evolving to handle more tasks, the discussion revolves around how humans can adapt and deepen their understanding of technology rather than just stepping back.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.geoffreylitt.com/2026/07/02/understanding-is-the-new-bottleneck.html&quot;&gt;Continue reading on &lt;strong&gt;www.geoffreylitt.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-14T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/understanding-is-the-new-bottleneck</id>
    <title>🔗 Understanding is the new bottleneck</title>
    <updated>2026-07-14T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/does-a-url-in-a-prompt-steer-an-llms-output-toward-its-content"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Does the inclusion of a URL in a prompt influence the output of a language model? Paul Kinlan explored this question through experiments on LLM responses to various URLs. He found that URLs can have an impact, but only if their content is part of the model&apos;s training data. Significant observations included that JavaScript-heavy sites often produce no recall, while descriptive URLs help guide output effectively. Kinlan demonstrated that opaque URLs generally perform poorly, while some well-known identifiers show high accuracy. This raises concerns about how data is gathered for training models. The exploration reveals a complex interaction between prompts and language model outputs, highlighting the necessity for transparency in LLM training data.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://aifoc.us/influencing-model-output-with-urls/&quot;&gt;Continue reading on &lt;strong&gt;aifoc.us&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/http&quot;&gt;#http&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-14T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/does-a-url-in-a-prompt-steer-an-llms-output-toward-its-content</id>
    <title>🔗 Does a url in a prompt steer an llm&apos;s output toward its content?</title>
    <updated>2026-07-14T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/our-new-product-strategy-for-wagtail"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Today’s announcement details Wagtail&apos;s new product strategy, laying out a vision for future development. With over a decade in competition, Wagtail has evolved to meet the demands of AI adoption thoughtfully, shifting from a purely AI-first approach to responsible and intentional integration. Key focuses include future-ready content management, seamless integrations, and a strong Developer Experience (DX). The roadmap for Wagtail 8.0 features a new &quot;write&quot; API for smoother content operations and ongoing enhancements in security and flexibility. The community is encouraged to contribute to this ambitious strategy, highlighting the collaborative nature of open source development. Engagement through events like Wagtail Space 2026 is also emphasized, aiming to unite developers, maintainers, and users in this journey.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://wagtail.org/blog/our-new-product-strategy-for-wagtail/&quot;&gt;Continue reading on &lt;strong&gt;wagtail.org&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/wagtail&quot;&gt;#wagtail&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/announcement&quot;&gt;#announcement&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-14T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/our-new-product-strategy-for-wagtail</id>
    <title>🔗 Our new product strategy for Wagtail</title>
    <updated>2026-07-14T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/why-svelte-is-better-than-react-in-the-ai-era"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Why is Svelte overshadowing React in the growing landscape of AI technologies? Zack Webster highlights how Svelte’s reactive nature offers superior performance and user experience. He explains that Svelte compiles to highly optimized JavaScript, reducing runtime overhead that often hinders React applications. This efficiency is crucial when building apps that leverage AI features, where speed and responsiveness are paramount. Webster also points out Svelte’s simplicity in syntax and state management, making it more approachable for developers, especially those transitioning from different frameworks. As AI integration intensifies, Svelte&apos;s ability to deliver a seamless interface will likely position it as a go-to choice in modern web development.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://out.reddit.com/t3_1tjx5tl?app_name=ios&amp;token=AQAAwYETajCSSI45BC6-jTBQt4_oEI2aKLqUkWhyqBKLrb40xJIJ&amp;url=https%3A%2F%2Fzackwebster.com%2Fblog%2Fwhy-svelte-is-better-than-react-in-the-ai-era&quot;&gt;Continue reading on &lt;strong&gt;out.reddit.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/javascript&quot;&gt;#javascript&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/frontend&quot;&gt;#frontend&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-13T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/why-svelte-is-better-than-react-in-the-ai-era</id>
    <title>🔗 Why Svelte is better than React in the AI era</title>
    <updated>2026-07-13T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-only-scalable-delete-in-postgres-is-drop-table"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Counterintuitively, large deletes add work to the database. Experience shows that scalable Postgres data-deletion strategies involve removing entire tables rather than executing individual row deletes. While small-scale deletes can be manageable, large batch operations lead to significant overhead without freeing physical disk space, causing impact on performance and replication processes.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;DROP TABLE&lt;/code&gt; and &lt;code&gt;TRUNCATE&lt;/code&gt; are recommended alternatives, as they scale better and free space efficiently. These methods bypass the issues of dead tuples and vacuum debt, which bog down traditional delete operations. In practice, a temporary table approach for retaining essential data during deletions is suggested, allowing for swift data management without prolonged locks. As partitioning capabilities improve with newer Postgres versions, structuring data to facilitate &lt;code&gt;DROP TABLE&lt;/code&gt; operations can drastically enhance database performance, reducing latency and replication strain.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://planetscale.com/blog/the-only-scalable-delete&quot;&gt;Continue reading on &lt;strong&gt;planetscale.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/postgresql&quot;&gt;#postgresql&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-13T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-only-scalable-delete-in-postgres-is-drop-table</id>
    <title>🔗 The only scalable delete in Postgres is DROP TABLE</title>
    <updated>2026-07-13T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-artisan-dev-command-in-laravel-13-16-0"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;A new &lt;code&gt;php artisan dev&lt;/code&gt; command in Laravel 13.16.0 allows developers to run multiple processes concurrently, such as the server, queue worker, log tailing, and Vite. This command streamlines development by integrating configuration directly into application code. The release also introduces the &lt;code&gt;whenFilledEnum()&lt;/code&gt; method for handling typed enums directly in requests, and the &lt;code&gt;withCookies()&lt;/code&gt; method has been extended to allow attaching multiple cookies to any response type. Additionally, a new array-based maintenance mode driver enhances parallel testing capabilities by avoiding conflicts with the existing file and cache drivers. Other improvements cover enum handling in event broadcasting and updates to JSON schema support. Developers are encouraged to upgrade to v13.16.1 for fixes related to the new command.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://laravel-news.com/laravel-13-16-0&quot;&gt;Continue reading on &lt;strong&gt;laravel-news.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/laravel&quot;&gt;#laravel&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-13T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-artisan-dev-command-in-laravel-13-16-0</id>
    <title>🔗 The artisan dev command in Laravel 13.16.0</title>
    <updated>2026-07-13T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/the-37signals-guide-to-making-decisions"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;A company is fundamentally defined by its decisions and the people who make them. This guide from 37signals outlines a clear framework for decision-making tailored for business contexts. It presents thoughtful questions to ask before making decisions, such as whether the right person is involved, the implications of hesitation, and if smaller decisions can stem from larger ones. The guide emphasizes a balance of data-driven choices and gut instincts, while questioning the impact of decisions on others. It encourages reflecting on past decisions for better future outcomes, showcasing a structured yet flexible approach to navigating choices in a business environment. Additional resources on communication and project management are also highlighted, reinforcing the interconnected nature of decision-making and organizational success.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://37signals.com/how-we-make-decisions&quot;&gt;Continue reading on &lt;strong&gt;37signals.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-12T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/the-37signals-guide-to-making-decisions</id>
    <title>🔗 The 37signals guide to making decisions</title>
    <updated>2026-07-12T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/lies-damn-lies-and-database-benchmarks"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Benchmarks often mislead the tech community, leading to skewed perceptions of database performance. Andrey Pechkurov, a Core Database Engineer, illustrates how database benchmarks, like ClickBench, resemble a chaotic contest where the rules don’t always equate to true performance measurement. By examining the ClickBench benchmarking process, Pechkurov reveals the challenges of comparing different database engines. The article emphasizes the importance of understanding how benchmarks run and how they can be manipulated based on the environments in which databases operate. This piece stands as a critical commentary on how numbers can misrepresent reality in database performance comparisons, particularly revealing insights about the cold versus hot run metrics, and what these mean for hosted versus self-managed systems. Pechkurov’s findings serve as a reminder that while benchmarks are valuable tools, they should be interpreted with a discerning eye.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://questdb.com/blog/lies-damn-lies-and-database-benchmarks/&quot;&gt;Continue reading on &lt;strong&gt;questdb.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-12T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/lies-damn-lies-and-database-benchmarks</id>
    <title>🔗 Lies, damn lies and database benchmarks</title>
    <updated>2026-07-12T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/cleaning-up-after-ai-rockstar-developers"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Why do teams often struggle after a talented developer leaves? Jesse Skinner delves into the chaos left behind by AI rockstar developers who produce impressive yet incomprehensible code. Their abrupt departures can lead to significant technical debt, leaving others grappling with tangled, hard-to-follow systems. Skinner outlines the challenges faced when taking over such projects, revealing how AI can amplify the complexity and create a chaotic codebase. He offers strategies for managing this complexity, suggesting ways to work alongside AI without compromising code clarity. The discussion emphasizes craftsmanship and highlights the need for quality over speed, urging developers to lead with intent and maintain code that is understandable and maintainable.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.codingwithjesse.com/blog/rockstar-developers/&quot;&gt;Continue reading on &lt;strong&gt;www.codingwithjesse.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-12T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/cleaning-up-after-ai-rockstar-developers</id>
    <title>🔗 Cleaning up after AI rockstar developers</title>
    <updated>2026-07-12T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/draw-the-rest-of-the-owl-software-factory-edition"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;How can a software development team trust the code generated by LLMs without reviewing it? This article dives into the challenges teams face as they navigate using LLMs like OpenCode and Claude Code, which may diminish the role of human oversight in coding. It emphasizes the importance of verification, suggesting that simply providing context isn&apos;t enough to ensure reliable software factories. The author proposes that automated tests written by LLMs must be validated, advocating for a system of &quot;sensors&quot; to monitor application behavior, code quality, and architectural integrity. Additionally, tools like Gherkin scenarios, boundary libraries for Elixir, and static analysis are discussed as potential solutions for maintaining software health. Ultimately, the need for comprehensive feedback mechanisms is highlighted to create a sustainable workflow, whether or not teams fully adopt a software factory model.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.germanvelasco.com/blog/draw-the-rest-of-the-owl-software-factory-edition&quot;&gt;Continue reading on &lt;strong&gt;www.germanvelasco.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/testing&quot;&gt;#testing&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-11T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/draw-the-rest-of-the-owl-software-factory-edition</id>
    <title>🔗 Draw the rest of the ___ owl (software factory edition)</title>
    <updated>2026-07-11T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/how-to-safely-delete-records-in-massive-tables-on-aws-using-laravel"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;When handling massive databases, like Flare&apos;s table with 1 billion records, a naive &lt;code&gt;DELETE&lt;/code&gt; can lead to disastrous locks. A straightforward delete could halt your app for hours. Instead, employing a &lt;code&gt;LIMIT&lt;/code&gt; can speed up deletions, releasing locks faster. However, AWS Lambda&apos;s 15-minute execution time limit complicates things, necessitating a job queue for longer processes. By using &lt;code&gt;CleanTableJob&lt;/code&gt;, the deletion tasks can self-dispatch, ensuring they run smoothly without overwhelming the system. Additionally, implementing an atomic lock prevents overlapping jobs, offering a reliable setup for managing large tables. Overall, this approach effectively balances database integrity and performance, ensuring efficient record management on AWS.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://flareapp.io/blog/how-to-safely-delete-records-in-massive-tables-on-aws-using-laravel&quot;&gt;Continue reading on &lt;strong&gt;flareapp.io&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/laravel&quot;&gt;#laravel&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/database&quot;&gt;#database&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-11T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/how-to-safely-delete-records-in-massive-tables-on-aws-using-laravel</id>
    <title>🔗 How to safely delete records in massive tables on AWS using Laravel</title>
    <updated>2026-07-11T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/add-a-second-remote-origin-with-git"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Sometimes you need a second remote origin for a project, especially if it involves auto deployment and access limitations. Hamid Shoja outlines the steps to add a second remote origin in Git where syncing with the primary origin is crucial. The process begins by using &lt;code&gt;git remote add&lt;/code&gt; to add the additional origin, followed by using &lt;code&gt;git push --all&lt;/code&gt; to push changes to both remote repositories. The article also highlights how to sync changes between the two origins with commands like &lt;code&gt;git fetch&lt;/code&gt; and &lt;code&gt;git merge&lt;/code&gt;, ensuring that both repositories remain aligned. This is particularly useful for developers needing flexibility in managing their code with multiple repositories.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://dev.to/hash01/add-a-second-remote-origin-to-git-35a7&quot;&gt;Continue reading on &lt;strong&gt;dev.to&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/git&quot;&gt;#git&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-11T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/add-a-second-remote-origin-with-git</id>
    <title>🔗 Add a second remote origin with Git</title>
    <updated>2026-07-11T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/why-dead-code-feels-hard-to-delete"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;It’s a common challenge when developers hesitate to delete dead code, often due to the sunk cost fallacy or loss aversion. The sunk cost fallacy leads us to believe that since we invested time and effort into writing code, it holds inherent value. However, this line of thinking can lead to increased complexity and future costs. The loss aversion principle further complicates matters, as losing code feels worse than never having it at all, even if it&apos;s unused. Understanding these cognitive biases sheds light on why teams cling to dead code and emphasizes the need to view code as a liability, not a resource. Minimizing unnecessary code leads to more clarity and lower maintenance costs, ultimately helping teams serve their customers better.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.germanvelasco.com/blog/why-dead-code-feels-hard-to-delete&quot;&gt;Continue reading on &lt;strong&gt;www.germanvelasco.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-10T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/why-dead-code-feels-hard-to-delete</id>
    <title>🔗 Why dead code feels hard to delete</title>
    <updated>2026-07-10T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/docker-alternative-podman-on-linux"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Podman presents a compelling alternative to Docker, especially for Linux users. This article outlines how Podman operates without a central daemon, making it more secure and flexible by allowing rootless container execution. Readers learn the straightforward installation process, using common commands like &lt;code&gt;podman run&lt;/code&gt; and &lt;code&gt;podman ps&lt;/code&gt;, and the benefits of managing containers through systemd with Quadlets. Comparisons with Docker show Podman’s advantages, particularly in security and alignment with Linux philosophy, while also acknowledging Docker’s extensive ecosystem. It&apos;s a practical guide for anyone considering a switch or starting containerization on Linux systems with a focus on efficiency and improved security.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://linuxblog.io/docker-alternative-podman-on-linux/&quot;&gt;Continue reading on &lt;strong&gt;linuxblog.io&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/linux&quot;&gt;#linux&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/docker&quot;&gt;#docker&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sysadmin&quot;&gt;#sysadmin&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-10T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/docker-alternative-podman-on-linux</id>
    <title>🔗 Docker alternative: Podman on Linux</title>
    <updated>2026-07-10T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/six-sql-patterns-i-use-to-catch-transaction-fraud"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Fraud detection largely relies on SQL rather than machine learning or hype-driven technologies. The author shares six effective SQL patterns applicable to various transaction systems, from credit cards to e-commerce. The first pattern addresses &lt;strong&gt;velocity&lt;/strong&gt;, identifying rapid usage of a stolen card, suggesting fraud. The second pattern, &lt;strong&gt;impossible travel&lt;/strong&gt;, flags transactions occurring in far-apart locations within an implausibly short time frame. Another pattern identifies &lt;strong&gt;amount anomalies&lt;/strong&gt; where specific transaction amounts correlate strongly with fraudulent behavior. The article also highlights &lt;strong&gt;suspicious merchants&lt;/strong&gt; exhibiting unusual activity and &lt;strong&gt;off-hours spending&lt;/strong&gt;, which indicates potential unauthorized use. Finally, a framework involving &lt;strong&gt;window functions&lt;/strong&gt; allows for more complex fraud detection by aggregating signals from these patterns. The author notes that utilizing these patterns collectively enhances the ability to uncover fraudulent transactions effectively. This practical SQL-focused approach provides a foundation for building robust fraud detection mechanisms.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://analytics.fixelsmith.com/posts/sql-fraud-patterns/&quot;&gt;Continue reading on &lt;strong&gt;analytics.fixelsmith.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/pattern&quot;&gt;#pattern&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sql&quot;&gt;#sql&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-10T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/six-sql-patterns-i-use-to-catch-transaction-fraud</id>
    <title>🔗 Six SQL patterns I use to catch transaction fraud</title>
    <updated>2026-07-10T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/stop-mounting-your-liveview-twice"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Every LiveView mounts twice on the first page load—once for the static HTTP &quot;dead render&quot; and again when the WebSocket connects. This can lead to unnecessary database queries and performance hits. The recommended fix is to use &lt;code&gt;connected?/1&lt;/code&gt; to conditionally load data during the connection, but this approach has its drawbacks. It still results in duplicate processing when mounting and can hinder SEO and user experience by leading to an empty first paint.&lt;/p&gt;
&lt;p&gt;The article outlines the limitations of this conventional solution and highlights ongoing efforts by the Phoenix team to improve LiveView&apos;s handling of mounts via the adoption of LiveViews. This new approach aims to keep the LiveView process alive across connections, avoiding the need for multiple mounts altogether, enhancing performance and reliability. By addressing these challenges, developers can create more efficient LiveViews without compromising on initial page load quality or SEO prioritization.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://elixirdrops.net/d/9mrw2kg3&quot;&gt;Continue reading on &lt;strong&gt;elixirdrops.net&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/elixir&quot;&gt;#elixir&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/phoenix&quot;&gt;#phoenix&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-09T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/stop-mounting-your-liveview-twice</id>
    <title>🔗 Stop mounting your LiveView twice</title>
    <updated>2026-07-09T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/stop-programming-in-markdown"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Amidst the rising hype around AI, particularly LLMs, companies misuse these tools in scenarios where traditional code is far superior. This translates to programming in Markdown, relying on LLMs to interpret logic with slow, costly, and insecure performance. Tasks often solvable with straightforward code are overcomplicated by using prompted LLMs. Examples like automating e-commerce returns illustrate a misuse of LLMs when simple code suffices. Additionally, the allure of LLMs often stems from their ability to simplify interactions, making them tempting despite their inefficiencies. The article emphasizes the need to resist using LLMs needlessly and to leverage traditional programming for common business processes. It calls for a reevaluation of when and how LLMs should be integrated into systems, pointing out the risks and inefficiencies of relying on them when simpler solutions exist.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://structural.chat/articles/programming-in-markdown/&quot;&gt;Continue reading on &lt;strong&gt;structural.chat&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-09T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/stop-programming-in-markdown</id>
    <title>🔗 Stop programming in Markdown</title>
    <updated>2026-07-09T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/modern-css-theming-with-light-dark-contrast-color-and-style-queries"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This article dives into a novel dynamic theming system using new CSS features. It introduces &lt;code&gt;light-dark()&lt;/code&gt; for switching between light and dark color schemes based on user preferences, while &lt;code&gt;contrast-color()&lt;/code&gt; ensures optimal text visibility against varying backgrounds. The author combines these functions with &lt;code&gt;@container style()&lt;/code&gt; to create customizable color palettes, enhancing both accessibility and aesthetics. Practical examples illustrate how to implement shadows in light mode and glowing borders in dark mode, ensuring that UI elements are visually appealing and readable irrespective of the theme. This innovative approach allows developers to craft intricate themes that respect user settings while providing a fluid user experience. Everything is browser-compatible as of May 2026, making this a timely exploration into modern CSS capabilities.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://una.im/modern-css-theming/&quot;&gt;Continue reading on &lt;strong&gt;una.im&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/frontend&quot;&gt;#frontend&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/css&quot;&gt;#css&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-09T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/modern-css-theming-with-light-dark-contrast-color-and-style-queries</id>
    <title>🔗 Modern CSS theming with light-dark(), contrast-color(), and style queries</title>
    <updated>2026-07-09T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/mistral-ocr-4-sota-ocr-for-document-intelligence"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Mistral AI has released Mistral OCR 4, touting its ability to extract and structure content from documents with exceptional accuracy. This model supports 170 languages and is designed for self-hosted deployments, ensuring compliance and sovereignty. It introduces features like bounding boxes, block classification, and inline confidence scores, tackling the weaknesses of previous OCR generations. Human evaluations showed that independent annotators preferred OCR 4, achieving a win rate of 72% against leading systems, while delivering an impressive overall score on OlmOCRBench (85.20). The model facilitates enhanced document processing for tasks like retrieval-augmented generation and agentic workflows, marking a significant step forward in document intelligence.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://mistral.ai/news/ocr-4/&quot;&gt;Continue reading on &lt;strong&gt;mistral.ai&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/devops&quot;&gt;#devops&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-08T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/mistral-ocr-4-sota-ocr-for-document-intelligence</id>
    <title>🔗 Mistral OCR 4 : SOTA OCR for Document Intelligence</title>
    <updated>2026-07-08T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/in-memory-of-the-man-who-put-red-and-green-squiggles-under-words"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Tony Krueger, whose contributions went largely unrecognized, passed away recently. He is best known for implementing the red and green squiggles in Microsoft Word that alert users to spelling and grammatical errors. These features transformed how people interacted with word processors, shifting from interruptive spell checks to an unobtrusive system that highlights mistakes as they occur. Krueger&apos;s work on various versions of Word helped pave the way for modern writing tools in nearly every application today. His innovative approach not only improved user experience but also earned him an unexpected moment of fame when Penn &amp; Teller acknowledged his work. While often overlooked, Krueger&apos;s legacy continues to impact users across the globe every time they see a red squiggle beneath a misspelled word. The next time this happens, remember to thank Tony.&lt;/p&gt;
&lt;p&gt;Tony also reverse-engineered and ported the game Chip’s Challenge to Windows, showcasing his technical prowess before his fame in word processing began.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/oldnewthing/20260622-00/?p=112451&quot;&gt;Continue reading on &lt;strong&gt;devblogs.microsoft.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/tools&quot;&gt;#tools&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-08T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/in-memory-of-the-man-who-put-red-and-green-squiggles-under-words</id>
    <title>🔗 In memory of the man who put red and green squiggles under words</title>
    <updated>2026-07-08T13:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/key-activities-for-sustainable-engineering-team"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;What signals indicate it&apos;s time for managers to change their operational focus? In a compelling article, Dunya Kirkali breaks down the essential activities that engineering managers must prioritize for effective team management. The piece categorizes these activities into internal, boundary, and external groups, emphasizing that synchronization meetings, reflections, and planning sessions are key for internal cohesion. Managers need to be attuned to their team&apos;s momentum through regular retrospectives and syncs. Boundary activities, such as ops reviews and business reviews, ensure alignment with organizational goals while external activities—like market research and customer feedback—provide necessary context. This framework enables managers to know when to shift their attention, ensuring teams can deliver effectively without micromanagement. Managers are encouraged to focus not just on the tasks at hand but on the signals that reveal deeper insights about their team’s dynamics.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blog.incrementalforgetting.tech/p/key-activities-for-sustainable-engineering&quot;&gt;Continue reading on &lt;strong&gt;blog.incrementalforgetting.tech&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/best-practice&quot;&gt;#best-practice&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-08T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/key-activities-for-sustainable-engineering-team</id>
    <title>🔗 Key activities for sustainable engineering team</title>
    <updated>2026-07-08T08:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/how-to-start-and-enable-clamav-service-on-linux"/>
    <content type="html">&lt;p&gt;ClamAV is a powerful, open-source antivirus engine designed to detect malware, viruses, and trojans on Linux systems. If you have just installed it, you need to start its background services so that it can protect your system and keep its virus definitions up to date.&lt;/p&gt;
&lt;p&gt;This guide will show you how to start, enable, and verify the ClamAV services using &lt;code&gt;systemctl&lt;/code&gt;.&lt;/p&gt;
&lt;h1&gt;Prerequisites&lt;/h1&gt;
&lt;p&gt;Before running the commands, ensure you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Linux distribution installed.&lt;/li&gt;
&lt;li&gt;Administrative privileges (&lt;code&gt;sudo&lt;/code&gt; or &lt;code&gt;root&lt;/code&gt; access).&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Step 1: Start the Antivirus Daemon&lt;/h1&gt;
&lt;p&gt;The primary service is &lt;code&gt;clamav-daemon&lt;/code&gt;. This background process loads virus signatures into memory and handles on-access scanning. It also allows you to run high-speed scans using the &lt;code&gt;clamdscan&lt;/code&gt; utility.&lt;/p&gt;
&lt;p&gt;Run the following commands in your terminal:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start the service:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;start&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-daemon&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable it to start automatically on boot:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-daemon&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify that it is running correctly:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-daemon&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Note:&lt;/strong&gt; The daemon might take a few moments to change to an &quot;active&quot; status. This delay happens because it is loading a large database of malware definitions directly into your system&apos;s RAM.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;Step 2: Start the Automatic Database Updater&lt;/h1&gt;
&lt;p&gt;An antivirus engine is only as good as its virus signatures. ClamAV uses a separate service called &lt;code&gt;clamav-freshclam&lt;/code&gt; to look for and download the latest malware definitions automatically.&lt;/p&gt;
&lt;p&gt;To get the updater running, execute these commands:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Start the updater service:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;start&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-freshclam&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable the updater to start on boot:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-freshclam&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify the update status:&lt;/strong&gt;
&lt;pre class=&quot;lumis&quot;&gt;&lt;code class=&quot;language-bash&quot; translate=&quot;no&quot; tabindex=&quot;0&quot;&gt;&lt;div class=&quot;l-line&quot; data-line=&quot;1&quot;&gt;&lt;span class=&quot;l-function-call&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;status&lt;/span&gt; &lt;span class=&quot;l-variable-parameter&quot;&gt;clamav-freshclam&lt;/span&gt;
&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Your Linux machine is now running ClamAV in the background with continuous, automated database updates. You can now safely run manual system scans or configure real-time protection.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/terminal&quot;&gt;#terminal&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/linux&quot;&gt;#linux&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/sysadmin&quot;&gt;#sysadmin&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-07T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/how-to-start-and-enable-clamav-service-on-linux</id>
    <title>🐥 How to start and enable ClamAV service on Linux</title>
    <updated>2026-07-07T17:00:00Z</updated>
  </entry>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/build-a-document-processing-workflow-in-30-minutes"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Workflows is an orchestration platform for building, executing, and monitoring complex AI-driven workflows. It provides durable, fault-tolerant workflow execution backed by battle-tested distributed systems infrastructure, combined with a developer-friendly SDK.&lt;/p&gt;
&lt;p&gt;In this tutorial, you’ll build an end-to-end medical document processing pipeline using three Mistral capabilities: OCR to read PDFs, Agents to classify documents and extract structured data, and Workflows to orchestrate the entire process reliably.&lt;/p&gt;
&lt;p&gt;The pipeline takes any scanned medical PDF like a prescription, a hospital bill, or an imaging report and runs it through three steps: optical character recognition (OCR) to extract raw text, an AI agent to classify the document type with a confidence score, and a second agent to extract patient information and document-specific fields as structured JSON. Because it’s built on Mistral Workflows, each step is durable and fault-tolerant: if a worker restarts mid-execution, the workflow resumes where it left off instead of starting over.&lt;/p&gt;
&lt;p&gt;You’ll also include a human-in-the-loop step: when the classifier’s confidence falls below a configurable threshold, the pipeline pauses and waits for a user to review and confirm the category before extraction continues. Mistral Workflows enables these long-running processes that can pause and resume based on external input, which is difficult to build reliably with a simple async queue or a chain of API calls.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://x.com/MistralDevs/status/2071625939444744521&quot;&gt;Continue reading on &lt;strong&gt;x.com&lt;/strong&gt;&lt;/a&gt;&lt;p&gt;&lt;a href=&quot;https://www.yellowduck.be/tags/reading-list&quot;&gt;#reading-list&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/pdf&quot;&gt;#pdf&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/ai&quot;&gt;#ai&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-07T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/build-a-document-processing-workflow-in-30-minutes</id>
    <title>🔗 Build a document processing workflow in 30 minutes</title>
    <updated>2026-07-07T13:00:00Z</updated>
  </entry>
</feed>