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.

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.

  • WSL2 openSUSE Tumbleweed ssh-agent

    ssh-agent does not persist over sessions in WSL2 with current openSUSE Linux and other common distributions. Linux native bashrc solutions don’t work here.Let’s use keychain instead Then let’s add some snippet to .bashrc and remove any eval ssh-agent lines Then open a new window. It will ask you to enter your passphrase once. Enter any

    Continue reading


  • Recovering from the unexpected

    My 2023 started in a bad way. I did not attend to any non-work twitter, email or other communication and FOSS work to deal with that. Don’t worry, I will catch up soon. Sorry for any delays and inconveniences.

    Continue reading


  • Satis is now a Composer Plugin.

    Satis is the lightweight, static repository generator for the composer package manager. It enables admins to provide PHP software packages inside airgapped CIs, OS packaging environments and restricted data centers. Back in August I added a plugin mode to satis to make it work as a regular composer plugin. While working on it, I also

    Continue reading


  • Let’s have a date. Revised horde/date ideas

    It’s bad but not as bad as you think. The way we write dates is very different among cultures and technologies. Even countries of the same language family might have totally different notions where to put the year, where to put the month, where to put the day when writing down a date in numbers.

    Continue reading


  • Horde on PHP 8.1 and Composer: Update

    by

    in

    Regular readers of this blog and many other are aware that PHP 7.4 will stop receiving security updates when PHP 8.2 comes out in November. This has made many horde admins question if they can continue to run Horde. Some events in life have made progress slower than originally planned. So where are we? Confirmed

    Continue reading


  • Modernizing horde/text_diff

    If you ever read a github pull request or similar extension proposal, you will likely have seen side by side comparisons of the original and the changed file. You may also have seen some text format that highlights only differences and a little context but hides the unchanged rest of the file. Both of these

    Continue reading


  • Code Generators: Bad, worse & ugly

    Code generators have been invented and forgotten at least four times in software history. They have an appeal to developers like the sun to Daedalus’ son. Let’s not be Icarus, let’s keep them generators at a distance and watch them carefully. Whenever a language, framework or paradigm forces developers to do the same thing over

    Continue reading


  • Tools to build better Tools faster

    Behind every lofty architecture mantra there is mundane execution. This is best left to tools and I don’t mean anybody in particular but programs that help us make better programs. It basically goes like this: Build tool. Use tool. Build better tool. Build tool to build better tool. Build better tool to build better tool

    Continue reading


  • Why you should develop for latest, greatest

    Developers sometimes choose not to use the latest available language features that would be appropriate to tackle a problem for fear of alienating users and collaborators. This is a bad habit and we should stop doing that. Part of the solution are transpilers. What are transpilers, where are they used and what is the benefit?

    Continue reading


  • Phar out: horde/components in one file

    tl;dr – I packaged horde/components as a single file for easy inclusion in build pipelines. The horde/components commandline app is an important development tool. It lets you generate a composer.json file from the .horde.yml definition, helps with managing the changelog yml and provides a simple workflow utility which I use for release pipeline. Last year

    Continue reading