<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/vendor/feed/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
                        <id>https://phptoptens.com/authors/alberto-arena/feed</id>
                                <link href="https://phptoptens.com/authors/alberto-arena/feed" rel="self"></link>
                                <title><![CDATA[Artisan Weekly — Author Feed]]></title>
                    
                                <subtitle>Featured links for a given author across Artisan Weekly editions.</subtitle>
                                                    <updated>2026-10-22T15:50:42+01:00</updated>
                        <entry>
            <title><![CDATA[phplives.dev: PHP is not dead. PHP lives!]]></title>
            <link rel="alternate" href="https://phplives.dev/" />
            <id>https://phplives.dev/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[This is my own site, launched yesterday. phplives.dev lists real things people shipped with PHP recently. Each one links to its own source and shows the date it shipped.]]>
            </summary>
                                    <updated>2026-10-22T15:50:42+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Late static binding: why self gave you the wrong class]]></title>
            <link rel="alternate" href="https://cogway.dev/explainers/late-static-binding/" />
            <id>https://cogway.dev/explainers/late-static-binding/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[An in-depth explainer on PHP's late static binding, demonstrating the crucial difference between self and static keywords and their impact on class inheritance patterns. Essential reading for Laravel developers working with models and factory methods.]]>
            </summary>
                                    <updated>2026-10-01T07:42:22+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Prompt Injection Is a Laravel Problem Now]]></title>
            <link rel="alternate" href="https://albertoarena.it/posts/prompt-injection-is-a-laravel-problem-now/?utm_source=artisanweekly&amp;utm_medium=referral&amp;utm_campaign=prompt-injection-is-a-laravel-problem-now" />
            <id>https://albertoarena.it/posts/prompt-injection-is-a-laravel-problem-now/?utm_source=artisanweekly&amp;utm_medium=referral&amp;utm_campaign=prompt-injection-is-a-laravel-problem-now</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Laravel now ships an official AI SDK with tool calling. A tool that does not check who is asking runs with app's database credentials, and not the customer's.]]>
            </summary>
                                    <updated>2026-10-01T15:09:42+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Why chunking can skip half your rows]]></title>
            <link rel="alternate" href="https://cogway.dev/explainers/chunk-skips-rows/" />
            <id>https://cogway.dev/explainers/chunk-skips-rows/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[An in-depth explanation of a critical bug in Laravel's chunk() method where updating rows during iteration can cause some records to be skipped, with interactive examples demonstrating how chunkById() provides a safer alternative.]]>
            </summary>
                                    <updated>2026-09-24T20:29:02+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[I thought Jev was fuzzy logic. I was wrong.]]></title>
            <link rel="alternate" href="https://albertoarena.it/posts/i-thought-jev-was-fuzzy-logic/" />
            <id>https://albertoarena.it/posts/i-thought-jev-was-fuzzy-logic/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Alberto Arena explores the differences between fuzzy logic and Jev, a newly released calibrated AI model from TypeSafe AI, and demonstrates how to integrate it into Laravel applications using the new Classification API.]]>
            </summary>
                                    <updated>2026-09-23T21:47:42+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Why strlen and mb_strlen disagree about one string]]></title>
            <link rel="alternate" href="https://cogway.dev/explainers/bytes-vs-characters/" />
            <id>https://cogway.dev/explainers/bytes-vs-characters/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A deep dive into PHP string functions and UTF-8 encoding, exploring why strlen, mb_strlen, and grapheme_strlen produce different results and how to correctly handle multibyte characters like accents and emoji.]]>
            </summary>
                                    <updated>2026-09-17T15:02:47+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[There's no artisan schema:show, so I built one]]></title>
            <link rel="alternate" href="https://albertoarena.it/posts/introducing-truss/" />
            <id>https://albertoarena.it/posts/introducing-truss/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A live, zoomable ER diagram of your Laravel app's actual database schema, safe to run in production because it only ever reads structure, never rows.]]>
            </summary>
                                    <updated>2026-08-28T08:53:53+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[Beyond the Bastion: Secure Artisan Command Execution with AWS Systems Manager]]></title>
            <link rel="alternate" href="https://albertoarena.it/posts/beyond-the-bastion-aws-ssm-laravel-artisan/" />
            <id>https://albertoarena.it/posts/beyond-the-bastion-aws-ssm-laravel-artisan/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[A practical guide to running Laravel Artisan commands on EC2 instances after SSH access is removed for security compliance. Learn how to leverage AWS Systems Manager Run Command as a secure, auditable alternative to traditional SSH access for manual operations.]]>
            </summary>
                                    <updated>2026-07-09T15:56:18+01:00</updated>
        </entry>
            <entry>
            <title><![CDATA[What if every Filament write went through an aggregate?]]></title>
            <link rel="alternate" href="https://albertoarena.it/posts/introducing-filament-event-sourcing/" />
            <id>https://albertoarena.it/posts/introducing-filament-event-sourcing/</id>
            <author>
                <name><![CDATA[Alberto Arena]]></name>
                <email><![CDATA[hello@example.com]]></email>

            </author>
            <summary type="html">
                <![CDATA[Alberto Arena introduces filament-event-sourcing, a plugin that seamlessly integrates Spatie's event sourcing package with Filament's admin panel. The plugin routes all create, edit, and delete actions through domain aggregates whilst preserving Filament's standard forms and workflows, eliminating the previous trade-offs between using event sourcing and maintaining Filament's built-in functionality.]]>
            </summary>
                                    <updated>2026-07-02T15:17:49+01:00</updated>
        </entry>
    </feed>
