<?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-13T17:00:00Z</updated>
  <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/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>
  <entry>
    <author>
      <name>Pieter Claerhout</name>
      <email>pieter@yellowduck.be</email>
    </author>
    <link rel="alternate" href="https://www.yellowduck.be/posts/rbac-in-laravel-a-practical-deep-dive"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Role-Based Access Control (RBAC) provides a structured approach to authorization that becomes essential as applications scale. It helps define clear permissions through roles rather than relying on individual user permissions. Wendell Adriel&apos;s article delves into designing a robust RBAC model within Laravel without the need for external packages. Readers can learn about critical concepts such as team-aware roles, permission inheritance, and the importance of constraints like separation of duties. The article also emphasizes the value of establishing a clear permission model before defining roles, which aids in creating a cleaner and more manageable authorization system. This practical guide includes implementation steps and insights into potential pitfalls, making it a must-read for developers looking to optimize access control in their applications.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://wendelladriel.com/blog/rbac-in-laravel-a-practical-deep-dive&quot;&gt;Continue reading on &lt;strong&gt;wendelladriel.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/best-practice&quot;&gt;#best-practice&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/auth&quot;&gt;#auth&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-07T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/rbac-in-laravel-a-practical-deep-dive</id>
    <title>🔗 RBAC in Laravel: a practical deep dive</title>
    <updated>2026-07-07T08: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/building-go-apis-with-huma-sqlc-and-goose"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Building an API with Huma, &lt;code&gt;sqlc&lt;/code&gt;, and Goose showcases a streamlined stack that strikes a balance between structure and simplicity. The author emphasizes the effectiveness of writing SQL for the schema and queries, enabling automatic generation of Go code while avoiding complexities introduced by ORMs. The project layout, from database migrations managed by Goose to type-safe Go code generated by &lt;code&gt;sqlc&lt;/code&gt;, demonstrates how each tool integrates seamlessly without unnecessary overhead. Huma simplifies API operation definitions and generates OpenAPI specifications directly from Go structs, ensuring the documentation stays aligned with the implementation. This approach drastically reduces onboarding time for new engineers while maintaining clarity and predictability in code execution, essentially providing a clean, efficient development workflow that encourages productivity without compromising on control or understanding.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blainsmith.com/articles/building-go-apis-with-huma-slqc-and-goose/&quot;&gt;Continue reading on &lt;strong&gt;blainsmith.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/golang&quot;&gt;#golang&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/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-06T17:00:00Z</published>
    <id>https://www.yellowduck.be/posts/building-go-apis-with-huma-sqlc-and-goose</id>
    <title>🔗 Building Go APIs with Huma, sqlc, and Goose</title>
    <updated>2026-07-06T17: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-your-x2d-ii-files-look-better-on-ipad-than-iphone"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Have you ever wondered why X2D II files appear more vibrant on an iPad than on an iPhone? The difference is not just in display technology but in how your eye perceives images. Konrad Michels reveals that while the iPhone 17 Pro Max boasts a higher pixel density at 460 PPI compared to the iPad Pro M4’s 264 PPI, this alone doesn’t enhance image quality for X2D II reviews. The article explains that the larger screen of the iPad allows images to occupy a greater angular size on your retina, activating peak contrast sensitivity and revealing subtle tonal gradations. Essentially, the X2D II’s 100-megapixel files require that angular room to fully appreciate their depth and detail, an insight often overlooked in favor of pixel count. Ultimately, understanding this visual physics leads to better evaluation of medium-format photography.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://blog.tonalphoto.com/x2d-ii-files-ipad-vs-iphone/&quot;&gt;Continue reading on &lt;strong&gt;blog.tonalphoto.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;/p&gt;</content>
    <published>2026-07-06T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/why-your-x2d-ii-files-look-better-on-ipad-than-iphone</id>
    <title>🔗 Why your X2D II files look better on iPad than iPhone</title>
    <updated>2026-07-06T13: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/agentic-rag-vs-long-context-llms-a-171-question-benchmark-on-30-long-pdfs"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;What happens when you evaluate agentic retrieval-augmented generation (RAG) against long-context LLMs? This article presents a rigorous benchmark of 171 questions asked across 30 long PDFs. The results highlight stark differences in performance between traditional RAG methods and long-context language models. The findings suggest that long-context LLMs excel at parsing complex documents, allowing for more nuanced responses. Data shows that while RAG can be effective, its reliance on external data sources may hinder performance on intricate queries. This comparison offers vital insights for researchers and practitioners considering which model to adopt for handling extensive textual information.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://www.surfsense.com/blog/agentic-rag-vs-long-context-llms-benchmark&quot;&gt;Continue reading on &lt;strong&gt;www.surfsense.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/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-06T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/agentic-rag-vs-long-context-llms-a-171-question-benchmark-on-30-long-pdfs</id>
    <title>🔗 Agentic RAG vs long-context LLMs: a 171-question benchmark on 30 long PDFs</title>
    <updated>2026-07-06T08: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/dont-roll-your-own"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;This article presents a critical viewpoint on modern web design practices, echoing a well-known principle in cryptography: &quot;Don&apos;t roll your own crypto.&quot; The author emphasizes that while developers are free to innovate, they should avoid reinventing standard UI elements that users rely on. This is particularly vital for website functionalities like scrolling, link navigation, text selection, and form controls. The author recalls frustrating experiences with custom implementations that disrupt user familiarity and efficiency, citing specific design pitfalls in well-known platforms like GitHub. With concrete examples and a personal touch, this piece serves as a warning for developers to lean on tried-and-true practices, ensuring usability over novelty.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://susam.net/do-not-roll-your-own.html&quot;&gt;Continue reading on &lt;strong&gt;susam.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/frontend&quot;&gt;#frontend&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/html&quot;&gt;#html&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-05T13:00:00Z</published>
    <id>https://www.yellowduck.be/posts/dont-roll-your-own</id>
    <title>🔗 Don&apos;t roll your own ...</title>
    <updated>2026-07-05T13: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/migrating-from-go-to-rust"/>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;Out of all the migrations, moving from Go to Rust stands out as unique. It is less about speed or type systems, as Go already offers significant advantages in those areas. Instead, this guide, written by Matthias Endler, addresses the nuances of correctness guarantees, runtime trade-offs, and developer ergonomics. It targets backend services, highlighting where Go excels and the challenges developers might face when transitioning to Rust.&lt;/p&gt;
&lt;p&gt;The piece meticulously maps Go patterns to Rust equivalents, explaining how Rust&apos;s borrow checker enhances safety. Endler emphasizes the importance of understanding the trade-offs involved, especially considering Go&apos;s strong community and tooling. Rust&apos;s advantages include zero-cost abstractions and stricter compile-time guarantees, making the migration worthwhile for teams burdened by Go&apos;s limitations in error handling and concurrency. The guide ultimately serves as a practical resource for Go developers contemplating this shift, offering insights backed by professional experience in both languages.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href=&quot;https://corrode.dev/learn/migration-guides/go-to-rust/#error-handling-if-err-nil-vs-result-t-e&quot;&gt;Continue reading on &lt;strong&gt;corrode.dev&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/golang&quot;&gt;#golang&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/rust&quot;&gt;#rust&lt;/a&gt; &lt;a href=&quot;https://www.yellowduck.be/tags/development&quot;&gt;#development&lt;/a&gt;&lt;/p&gt;</content>
    <published>2026-07-05T08:00:00Z</published>
    <id>https://www.yellowduck.be/posts/migrating-from-go-to-rust</id>
    <title>🔗 Migrating from Go to Rust</title>
    <updated>2026-07-05T08:00:00Z</updated>
  </entry>
</feed>