• Alex Standiford

    I’m on an email list. Great content. They send a good one that prompts me to ask a question in-response.

    Their reply? “I talk about that in my service [link]”

    Totally lost me in that moment.

  • Portable Kite Tail Winder

    Portable Kite Tail Winder

    I needed a better way to wind up my kite tail, so I designed something to help me. You can download the file and print your own.

  • Alex Standiford

    The newly adjusted pieces worked SO well. They printed easily thanks to the flats, still work just as well, and printed much nicer. This thing makes winding up my kite tail A LOT easier. Really happy with this design.

  • Alex Standiford

    Sometime’s it’s great to know Linux. And today, the day that I started a Factorio server so me and my family can play over Christmas break is one such example.

  • Alex Standiford

    The tail crank design definitely works, although I had some issues with the quality of my prints. I’m re-designing the cranks now to be easier to print on their side, and just a scoshe smaller so they fit into the holes easier.

    But functionally-speaking, this works great!

    I changed the design of the crank to have flats on either end. This makes it a lot easier to print on its side, which will not only make the cranks stronger, but also a lot easier to print. This should fix the quality issues I had.

  • Feature Request: Make it possible to provide a class instance to binding transformers

    Currently, event bindings are supported using a callback. Ready::class => [ [‘action’ => ‘init’, ‘transformer’ => function () { $ready = null; if (!self::$initRan) { $ready = new Ready(); self::$initRan = true; } return $ready; }] ], This tends to be overly terse, and require calls like this in cases where you want to encapsulate the logic: $saleTransformerCallback = fn($orderId, $orderData) => $this->container->get( SaleTriggeredTransformer::class )->getSaleTriggeredEvent($orderId, $orderData); SaleTriggered::class => [ [‘action’ => ‘action’, ‘transformer’ => $saleTransformerCallback], ], It would be much nicer if it were possible to do this, instead: SaleTriggered::class => [ [‘action’ => ‘action’, ‘transformer’ => SaleTriggeredTransformer::class], ], Would…

  • Alex Standiford

    If I can get the printer to do it, I’m going to try and print this little setup as a portable tail winder. The handles come out and fit inside the winder, and then you can strap the whole thing together as a single compact piece.

  • Archive The Mutator Package

    Why We’re Saying Goodbye to Mutators The Mutator package, while well-intentioned, has become a source of unnecessary complexity in our development workflow. What started as an attempt to create a flexible data transformation system has instead created a maze of interfaces, adapters, and callbacks that obscure the true intent of our code. The Problem with Mutators Our current Mutator pattern introduces: A Better Path: Event-Driven Mutations Instead of wrestling with complex Mutator interfaces, we’re embracing a more intuitive approach: Simple, Direct Event Transformations class UserRegisteredEvent implements Event { private string $email; private string $name; public function setEmail(string $email): self {…

  • Pitch: Remove Core Package Completely

    The heart of the nomadic approach is that your code should be free to travel and adapt, like a digital nomad who can work from anywhere. The existence of a core package actually contradicts this fundamental principle. Here’s why: The solution is to break down the core package into focused, independent tools that developers can use as needed. Each piece should solve a specific problem in making code more portable, without creating dependencies on PHPNomad itself. Think of PHPNomad more like a travel guide than a destination. It should show you how to write code that can travel well, not…

  • Alex Standiford

    Ripped off a bandaid today. Finally got around to properly tagging all PHPNomad packages, and setting all of them up in Packagist. Currently at 40 repositories, so I needed to get ahead of this before it got out of hand.

Alex
Alex
@alex@www.alexstandiford.com

Founder of Novatorius & creator of Siren Affiliates. WordPress engineer and partnership advocate helping businesses grow with flexible incentive programs.

4,936 posts
62 followers