πŸ₯ The MySQL null-safe equality operator: <=>

If you've worked with MySQL long enough, you've probably been bitten by NULL comparisons at least once. A query that should return results returns nothing. A WHERE clause that should exclude a row doesn't. The culprit is almost always the three-valued logic of SQL β€” and the null- … | Continue reading


@yellowduck.be | 1 hour ago

πŸ”— Make friends with your AI assistant

Could your AI assistant be causing more chaos than compliance? This article emphasizes the importance of structured workflows and clear rules when working with AI. It illustrates how utilizing start and stop words can prevent careless commits and untested code pushes. Furthermore … | Continue reading


@yellowduck.be | 5 hours ago

πŸ”— Before GitHub

GitHub was not the first home for Open Source software; SourceForge was. Before it, Armin Ronacher had his own Trac installation with Subversion repositories, tickets, and documentation. GitHub became essential, shaping a significant part of his Open Source identity and fostering … | Continue reading


@yellowduck.be | 10 hours ago

πŸ”— Utilizing Claude skills in client projects

Working on a project for Ticketmatic unveiled a repetitive challenge: integrating with their API using the Saloon library. Despite Artisan commands like php artisan saloon:response, developers still faced tedious work creating DTOs and manually wiring everything. By leveraging Cl … | Continue reading


@yellowduck.be | 1 day ago

πŸ”— Symptoms of bad software design

What are the telltale signs that software design has gone wrong? Marcos F. Lobo identifies four crucial symptoms: rigidity, fragility, immobility, and viscosity. Rigidity surfaces when a change triggers unexpected complications across modules, often due to excessive coupling. Fra … | Continue reading


@yellowduck.be | 1 day ago

πŸ”— Why senior developers fail to communicate their expertise

What happens when senior developers and the rest of the business struggle to understand each other? Tuhin Nair delves into a communication gap that arises from differing priorities: senior developers focus on managing complexity, while business teams prioritize speed and uncertai … | Continue reading


@yellowduck.be | 1 day ago

πŸ₯ Testing that Laravel events fire after a transaction commits

A common source of bugs in Laravel applications is dispatching events inside a database transaction. Listeners often kick off their own queries or even their own transactions β€” and if the outer transaction hasn't committed yet, you can end up with deadlocks, stale reads, or liste … | Continue reading


@yellowduck.be | 2 days ago

πŸ”— Lies I was told about collaborative editing, part 2: Why we don't use Yjs

The common belief that CRDTs like Yjs are essential for seamless collaborative editing faces scrutiny in this article. It argues that the algorithmic complexity and architectural choices behind Yjs compromise performance and reliability. By highlighting serious issues encountered … | Continue reading


@yellowduck.be | 2 days ago

πŸ”— Lies I was told about collaborative editing, part 1: algorithms for offline editing

In an era where collaborative editing tools are becoming integral to workflows, some popular algorithms promise effective solutions for both online and offline editing. However, as evaluated in Moment's development blog, many of these algorithms, including CRDTs and OT, result in … | Continue reading


@yellowduck.be | 2 days ago

πŸ”— Piper: Laravel-style array and string helpers for PHP's pipe operator

PHP 8.5's pipe operator enables a seamless flow of data between functions, yet built-in functions and Laravel's classes weren't designed for it. Piper bridges that gap by transforming Laravel's collection and string methods into standalone functions specifically tailored for use … | Continue reading


@yellowduck.be | 3 days ago

πŸ”— How LLMs interpret websites: guide to AI visibility

How do LLMs interpret the structure of websites? This article from WP Engine delves into how large language models analyze web content to enhance AI visibility. It highlights the significance of clear website architecture and structured data in making content more interpretable t … | Continue reading


@yellowduck.be | 3 days ago

πŸ”— Django LiveView vs Phoenix LiveView: a real benchmark

How does Django LiveView stack up against Phoenix LiveView in real-world scenarios? In a recent benchmark, identical alert dashboards were built in both frameworks to measure performance under realistic conditions. The tests showed that both frameworks performed similarly, with a … | Continue reading


@yellowduck.be | 3 days ago

πŸ₯ Speeding up S3 uploads in GitHub Actions with Bash parallelism

When you're uploading multiple directories to S3 (or an S3-compatible CDN like DigitalOcean Spaces) in a CI pipeline, the naive approach runs each upload sequentially. If you have three directories and each takes 30 seconds, you're waiting 90 seconds. They're completely independe … | Continue reading


@yellowduck.be | 4 days ago

πŸ”— This blog ran on Ubuntu 16.04 for 10 years. I migrated it to FreeBSD

After over a decade on Ubuntu 16.04, the blog's migration to FreeBSD signals a pivotal shift for its author. Running on a Digital Ocean VPS, the outdated Ubuntu system had become a security risk. The author shares insights about moving to a Hetzner VPS, offering better specs at a … | Continue reading


@yellowduck.be | 4 days ago

πŸ”— Running local models on an M4 with 24GB memory

Experimenting with local models on an M4 with 24GB memory showcases the balance between convenience and performance. This article details the author's journey to find workable setups, emphasizing that while local models won't achieve the same results as state-of-the-art (SOTA) mo … | Continue reading


@yellowduck.be | 4 days ago

πŸ”— AI load breaks GitHub – why not other vendors?

GitHub’s recent outage is attributed to a staggering 3.5x increase in service load, according to their CTO. With reliability dropping to as low as 86%, many users are frustrated. A significant data integrity incident saw over 2,000 pull requests compromised, leaving companies lik … | Continue reading


@yellowduck.be | 5 days ago

πŸ”— Idempotency: What, why and how

Retries can wreak havoc if endpoints aren’t designed correctly. The article by Wendell Adriel dives deep into idempotency, explaining its significance in backend systems, especially in PHP and Laravel. Idempotency ensures that multiple executions of the same operation do not lead … | Continue reading


@yellowduck.be | 5 days ago

πŸ”— The unwritten laws of software engineering

What are the unwritten rules every software engineer learns the hard way? After detailing 13 famous laws, Anton Zaides shared 7 unwritten laws that every engineer tends to break. These insights stem from personal experience, emphasizing essential practices like having a rollback … | Continue reading


@yellowduck.be | 5 days ago

πŸ₯ Debugging PHPUnit notices in Laravel parallel tests

Running Laravel's test suite in parallel speeds things up considerably, but it also makes it easy to miss PHPUnit notices. The parallel worker output gets interleaved and buffered, and notices about deprecated API usage or risky tests tend to scroll past unnoticed β€” or disappear … | Continue reading


@yellowduck.be | 6 days ago

πŸ”— Working with PHP and Laravel on VSCode

What if you could streamline your development environment? Wendell Adriel shares his transition from PHPStorm to VSCode for PHP and Laravel projects. After years of using PHPStorm, he decided to unify his coding tools, especially while working with Go and Python. In the article, … | Continue reading


@yellowduck.be | 6 days ago

πŸ”— Ai turned me into a 0.1x developer

The era of rapid coding seems to be fading as AI increasingly takes the reins. In a candid piece, George Ongoro reflects on how his development workflow has transformed, noting a significant shift where he finds himself writing less code, but producing cleaner, more integrated re … | Continue reading


@yellowduck.be | 6 days ago

πŸ”— The most underrated startup skill isn’t hustle. It’s curiosity.

What if curiosity is the key to innovation? In his article, Marc Randolph emphasizes that the most successful people aren’t always the smartest; they’re the ones who continually ask questions. He reflects on his experiences founding Netflix with Reed Hastings, where curiosity led … | Continue reading


@yellowduck.be | 7 days ago

πŸ”— How to debug a team that isn’t working: the Waterline Model

When team performance falters, blaming individuals is a common trap for leaders. Molly Graham, drawing from her extensive experience in top tech firms, introduces the Waterline Model to help diagnose underlying issues without jumping to personal conclusions. This framework encour … | Continue reading


@yellowduck.be | 7 days ago

πŸ”— How do I write Elixir tests?

Tests should be readable, often even more readable than the code itself. This article emphasizes guides for writing effective Elixir tests using the ExUnit framework. It advises on using the @subject module attribute for clearer test readability, grouping tests with describe bloc … | Continue reading


@yellowduck.be | 7 days ago

πŸ₯ From N+1 to 1: Extracting paged PDF text with a single pdftotext call

When building full-text search for uploaded documents, we needed to extract text page-by-page from PDFs so we could index each page as a separate chunk. The naive approach worked but was painfully slow. Here's how a single Unix insight cut it down to one process spawn. The proble … | Continue reading


@yellowduck.be | 8 days ago

πŸ”— Go away Microsoft! The Netherlands is quietly building its own GitHub replacement

In a surprising move, the Netherlands has initiated a project to create its own Git repository platform, sidestepping commercial options. The decision follows the recommendations of Jan Vlug, a software engineer, advocating for an open-source solution suitable for governmental ne … | Continue reading


@yellowduck.be | 8 days ago

πŸ”— Just fucking use Go

Stop overcomplicating your backend! This article argues why using Go is the straightforward solution that cuts through unnecessary complexity. Continue reading on blainsmith.com#reading-list #golang #development | Continue reading


@yellowduck.be | 8 days ago

πŸ”— Writing code that feels native to Laravel

Certain patterns emerge when working with Laravel that can greatly enhance your application code. The framework’s emphasis on convention over configuration creates a consistent experience; features integrate seamlessly due to familiar methods and behaviors. The article illustrate … | Continue reading


@yellowduck.be | 9 days ago

πŸ”— The hidden danger of shipping fast

Is it possible to ship too much – or too fast? Cleo highlights the risks that come with high product velocity, particularly when it surpasses user adoption. Many companies rush to deliver features, but this can result in a backlog of user unawareness and ultimately leads to reduc … | Continue reading


@yellowduck.be | 9 days ago

πŸ”— Watching for file changes on macOS

When working on a website, live reload can greatly enhance productivity. This article outlines a method to implement this feature on macOS using the File System Events API. The author, who transitioned from using Jekyll to a custom static site generator, explains how to build a S … | Continue reading


@yellowduck.be | 9 days ago

πŸ₯ The silent saboteur: how --quiet can break your Laravel command sequences

When you chain multiple Artisan commands together in Laravel, there's a subtle trap waiting for you β€” one that's easy to miss because the commands still run, they just stop talking. The setup A common pattern in Laravel applications is a "meta-command" that runs a sequence of oth … | Continue reading


@yellowduck.be | 10 days ago

πŸ”— Chasing a Phoenix LiveView long poll reload issue

The issue with the reload loop in a Phoenix 1.7 LiveView app stemmed from the requirement for long poll distribution. Users faced a frustrating loop where pages reloaded every seven seconds, showing a "Something went wrong! Hang in there while we get back on track" message. Despi … | Continue reading


@yellowduck.be | 10 days ago

πŸ”— Moving away from Tailwind, and learning to structure my CSS

Moving from Tailwind to a more semantic HTML and vanilla CSS approach can be liberating. The author reflects on their journey of migrating several sites away from Tailwind after years of reliance on it. They found newfound joy in structuring CSS and learned to impose systems that … | Continue reading


@yellowduck.be | 10 days ago

πŸ”— How I moved my digital stack to Europe

The urgency behind digital sovereignty often gets overlooked. However, this article provides a compelling case for why moving to European cloud services can not only provide better control over data but also align with personal values that prioritize privacy and autonomy. The aut … | Continue reading


@yellowduck.be | 11 days ago

πŸ”— The myth of never giving up

There’s a myth in the startup world suggesting that relentless perseverance guarantees success. However, Marc Randolph challenges this notion by distinguishing between productive persistence and stubbornness. He argues that while persistence is vital, it’s crucial to recognize wh … | Continue reading


@yellowduck.be | 11 days ago

πŸ”— What’s gone wrong at GitHub?

Reliability issues are driving users away in their droves. GitHub’s uptime has plummeted, with 257 logged incidents in just a year. In a shocking turn, the rapid scaling of AI workflows overwhelmed the platform, leading to significant outages, notably in the CI/CD system, Actions … | Continue reading


@yellowduck.be | 11 days ago

πŸ₯ How to check how much memory a systemd unit is actually using

When investigating memory usage on a Linux server, it's common to look at processes using tools such as top, htop, or ps. However, when applications are managed by systemd, it is often more useful to inspect memory usage at the service level rather than at the individual process … | Continue reading


@yellowduck.be | 12 days ago

πŸ”— How Claude Code works in large codebases: Best practices and where to start

How does Claude Code thrive in the chaos of large codebases? In an article outlining best practices for deploying Claude Code at enterprise scale, the focus is on efficient navigation, effective harness setup, and contextual awareness. Claude Code manages codebases with millions … | Continue reading


@yellowduck.be | 12 days ago

πŸ”— What if the browser was the server?

The article argues against the traditional SaaS model by suggesting that browsers could effectively serve as their own backends. It highlights how modern SaaS often merely acts as a middleman between users and databases, creating unnecessary delays through network communication. … | Continue reading


@yellowduck.be | 12 days ago

πŸ”— Using daisyUI means less LLM cost and faster UI generation

If AI is writing the code, does it still matter if we use an efficient component library? daisyUI significantly reduces token costs and accelerates UI generation by streamlining code. By minimizing verbosity, daisyUI allows for just one class name instead of a long list of utilit … | Continue reading


@yellowduck.be | 13 days ago

πŸ”— 34 days in an Elixir tunnel to refactor my SaaS without a rewrite

Alzo, an Elixir SaaS for architecture firms, faced growth challenges due to its original architecture. Lucas Sifoni spent 34 days refactoring Alzo into a clustered multi-tenant application without a complete rewrite. He removed bottlenecks in the architecture, including eliminati … | Continue reading


@yellowduck.be | 13 days ago

πŸ”— Learnings from 100K lines of Rust with AI

What can be achieved with 100,000 lines of Rust and AI? Cheng Huang shares insights from building a modern multi-Paxos consensus engine that outperforms Azure's original Replicated State Library. In just six weeks, he not only implemented all features of the library but also enha … | Continue reading


@yellowduck.be | 13 days ago

πŸ₯ Fixing PHPUnit 13 with*() without expects() deprecations in Laravel tests

After upgrading to PHPUnit 13, you may run into this deprecation warning in Laravel test suites: Using with*() without expects() is deprecated and will no longer be possible in PHPUnit 14. At first sight, the code often already looks correct: $mock->expects($this->once()) -> … | Continue reading


@yellowduck.be | 14 days ago

πŸ”— Composable SFTP streams in Elixir

In Elixir, handling large media files over SFTP can lead to memory issues, especially with immense video files. Through lazy enumerables, Elixir allows developers to process streams efficiently without loading everything into memory. The article outlines how to use File.stream!/2 … | Continue reading


@yellowduck.be | 14 days ago

πŸ”— How I write HTTP clients

How do you build effective HTTP clients? Blain Smith shared his experiences developing HTTP clients for 3rd party APIs, outlining critical patterns he's observed. This includes essential components like composing client options, JSON encoding/decoding in Go, HTTP request signing, … | Continue reading


@yellowduck.be | 14 days ago

πŸ”— Computer use is 45x more expensive than structured APIs

A benchmark study shows that AI agents using computer vision to navigate web interfaces are 45 times more expensive than those using structured APIs, largely due to higher token consumption and performance variance. While vision-based agents are still necessary for third-party so … | Continue reading


@yellowduck.be | 15 days ago

πŸ”— Why developers should – and shouldn’t – use LLMs in our development

Why should I use AI? This pressing question is at the forefront of our evolving software development landscape. In the wake of LLMs like ChatGPT, developers must decide how to harness this technology effectively. While LLMs excel at handling repetitive tasks or producing prototyp … | Continue reading


@yellowduck.be | 15 days ago

πŸ”— The robots are replacing the packages

The way AI-assisted development is changing how developers handle package installations is striking. Manual coding may have taken time, but with intelligent agents automating the background work, developers can focus on high-level tasks. The article categorizes common scenarios d … | Continue reading


@yellowduck.be | 15 days ago