A story about rubber ducks and functional programming Once upon a time, I wanted to get a rubber duck. One rubber duck. I…
Fixing gnome-shell app indicators in Ubuntu I am a long-time gnome-shell user. I appreciate the simplicity and elegance it provides, as…
Registering Module-Specific Routes in Expressive In Expressive, we have standardized on a file named config/routes.php to contain all your route…
From Zend Framework To The Laminas Project Ten years ago this month, I was involved in a couple of huge changes for…
Development-Mode Modules for Mezzio I fielded a question in the Laminas Slack yesterday that I realized should likely be…
More Changes Coming for the Laminas Project Progress has been happening at a furious pace on the Zend Framework to Laminas transition,…
An Apology to php[world] Attendees Due to disorganization on my part, I accidentally booked php[world] 2019 to coincide with a…
Looking For A New Adventure Update As of 2019-10-01, I am once again employed full-time. Thank you everyone who reached…
Managing Multiple PHP versions via the ondrej/php PPA Last week, I did some system updates, and then decided to compile the most recent…
Tinker-like REPL for Mezzio Today in the Laminas Slack, somebody asked if there was an equivalent to Laravel’s Tinker…
Laminas CI Automation The Laminas Project has close to 200 repositories between the main project, Laminas API Tools,…
Release of the Rector book TLDR; Rector – The Power of Automated Refactoring is now 100% completed Tomas Votruba and…
Don’t test constructors @ediar asked me on Twitter if I still think a constructor should not be tested.…
Early release of Rector – The power of automated refactoring In October 2020 I asked Tomáš Votruba, the mastermind behind Rector, if we could have…
Do tests need static analysis level max? I recently heard this interesting question: if your project uses a static analysis tool like…
Book excerpt – Decoupling from infrastructure, Conclusion This article is an excerpt from my book Advanced Web Application Architecture. It contains a…
Testing your controllers when you have a decoupled core A lot can happen in 9 years. Back then I was still advocating that you…
Using jenv to select Java version on macOS When working on OpenWhisk, I discovered that it needed a different Java to the one…
Installing PHP extensions without pecl in PHP 8 Docker images UPDATE: Since this was published, PR 1087 has been raised and merged with restores pecl…
Keyboard control of Big Sur notification alerts With the release of Big Sur, my scripts for keyboard control of macOS notification alerts…