• Change Datastore Methods to Use Generators

    The current datastore interface returns arrays for collection methods which leads to memory and performance issues in REST implementations where N+1 queries are sometimes unavoidable. By changing these methods to use generators, we can process items as they arrive and maintain constant memory usage regardless of collection size, creating a more efficient implementation without sacrificing usability.

  • Restructuring Datastore Events in PHPNomad

    We’re moving datastore events out of the database layer and into the datastore layer while also splitting operation traits into paired versions (with and without events) to give developers more control over event emission. This change breaks backward compatibility but creates a more flexible, truly nomadic system where developers can choose exactly which operations should emit events rather than being forced into a one-size-fits-all approach.

  • Remove Concrete Container Solution and Create Integrations With DI Libraries

    I have come to realize it’s likely time to pivot away from PHPNomad’s simple container system, and embrace integrating with existing solutions, instead.

  • Alex Standiford

    Cold message on LinkedIn starting with “If I may be so bold”

    Me: “You may not”

  • 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 […]