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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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