Technical insights and software architecture

Deep dives into PHP development, Horde Framework evolution and practical software engineering. Focused on real-world solutions for complex technical challenges. “Always close to the source”.

Core Topics

PHP, Horde Framework, authentication systems, composer workflows and modern development practices.

Long-form Analysis

Comprehensive technical articles exploring architectural decisions, migration strategies and lessons learned from real projects.

Code & Community

Open source contributions, framework development and sharing knowledge with the PHP developer community.

Author: Ralf

  • Unit Testing Horde 6

    Some years ago I reasoned about upgrading unit tests from ancient PHPUnit 4 to then-recent PHPUnit 9.Back then Horde’s unit test suite would use a Horde_Test class inheriting from the actual phpunit test cases. Even then I was fairly certain that this approach was not very practical in the long run.Why extending PHPUnit might be…

  • I want to run horde/components on new PHP

    If you want to run horde-components on a version of PHP which is not yet reflected in packagist.org released versions: me@mine:~/horde/components$ composer config minimum-stability devme@mine:~/horde/components$ composer install –ignore-platform-reqs No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.Loading composer repositories with package informationUpdating dependenciesLock file operations:…

  • Privilege Separation: Two github logins on the same Linux or WSL

    Scenario: You run a linux or wsl-equipped windows development machine where you do 90% of work for organization A using github.com and 10% for “other” and you strictly must not use the same github account. Both types of work require multiple repos so handling access per-repo is tedious. Scenario B: Privilege separation You have an…

  • Runaway Trains Back on Track – Plans are just plans

    Trains don’t only run on railroad tracks but supposedly on schedule. Commuters shall know every stop, arrival and departure, the order of cars and their position on the platform. If trains regularly arrive delayed, at another platform, composed of different or differently ordered cars it is a source of frustration. If they skip a station…

  • Years after cancellation: New Patch for Imperator

    Paradox Development Studios is famous for their grand strategy games including the flagship Europa Universalis franchise. While a new main version is developed under code name Project Caesar, the latest Europa Universalis IV still gets new expansion packs (Download Content) and updates to the base game. Paradox even backported several former add-ons into the latest…

  • Back to the source code? The 2025 agenda

    Looking back on 2024, it was a challenging, demanding and sometimes crazy year. But let’s start with athe good things in life: There was so much joy to be had with the family, so much to learn and discover at work, so much progress on personal development and discovering new approaches to things that just…

  • Winget github quick start

    Install git and github cli through winget to avoid using a browser or manually entering the microsoft store tool. Install vscode and WSL if you need it.

  • Run FTDI USB devices on Windows 10/11 WSL2

    Issue: You can use FTDI based USB devices such as microcontroller boards and embedded products in Ubuntu Linux on physical devices and on full flegded VMs but under WSL2 the device does not work. You can successfully map the USB device in usbipd and you see it show up in lsusb, dmesg, journal. But no…

  • Horde 6: Return of the Git Tree

    Over the last few weekends, Horde 6 code has been merged back from the Maintaina fork and from separate contributions to the former Horde development version, “master”. It was time to upgrade the development tool chain. Back in the Horde 5 days, there was a utility called git-tools developed by Michael Rubinsky. It would checkout…