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.

  • Maintaina Horde: Q&A

    by

    in

    There’s sometimes a little confusion about that. Let’s answer common questions. What is Maintaina Horde? Horde is a long-living email and groupware solution. It’s free & open source and owned by Horde LLC.Maintaina Horde is a fork from the official horde repository adding / improving code. It started out as a proof of concept but

    Continue reading


  • Maintaina Horde: Now on Leap 15.2

    I changed the maintaina.com Horde Images to use openSUSE Leap 15.2 instead of openSUSE Tumbleweed as a base. You should not experience any issues but I have not yet tested much. The change was necessary as I had build failures since 2021-02-17 in the github actions CI builds. It’s something about the docker used in

    Continue reading


  • DAVx5 CalDAV may break with Unicode symbols in Horde/Kronolith syncs.

    If you get user complaints about broken CalDAV syncs with Horde, there’s many places to look at. In one particular instance, an event was created from travelling app Transportr into the stock android Calendar app. Through the DAVx5 sync app, the user wanted to push these events to Horde’s SabreDAV interface – and from there,

    Continue reading


  • Horde Development Review: October 2020

    October was a very busy month in Horde development, even though a lot of things happened under the hood and cannot be accessed right now. A decision was made that Horde RPC will default to json-rpc and deprecate xmlrpc in upcoming releases, maybe already dropping xmlrpc in Horde 6. PHP8 will remove xmlrpc from the

    Continue reading


  • Autowiring Vfs in a Horde App

    The Horde Vfs is an abstraction around storing and retrieving files. Calling code does not care about where the Vfs is actually stored, be it a remote filesystem, a dav resource, a database or a path in the local filesystem. Autowiring means the Injector knows how to create a class using some other class without

    Continue reading


  • Docker for Windows now runs on Windows Home

    Docker for Windows used to require Hyper-V and Windows Professional. Now, you can do basic software development on Windows Home. Here’s the story. I got hold of some older 4GB Windows convertible laptop. Unfortunately, it won’t run Linux in any useful way. In recent years, I did not really care for Windows a lot, apart

    Continue reading


  • Heads Up: Cannot login as horde admin anymore?

    Please be careful: Horde has introduced a new default setting $conf[‘auth’][‘lowercase’] which acts like the auth hook used to do. This might lead to issues when your default admin account is named “Administrator”. It is actually a very useful setting. It ensures that any prefs and other profiles also work with case-insensitive backends regardless of

    Continue reading


  • The state of horde composer deployments

    In early 2019 I first wrote a few lines on migrating horde to composer based setups. Even though I was too occupied with other business for several months, I have something to show and it is time to review what we have and what we don’t have. The good news is, it really runs as

    Continue reading


  • PEAR down – Taking Horde to Composer

    Since Horde 4, the Horde ecosystem heavily relied on the PEAR infrastructure. Sadly, this infrastructure is in bad health. It’s time to add alternatives. Everybody has noticed the recent PEAR break-in. A security breach has been found on the http://pear.php.net webserver, with a tainted go-pear.phar discovered. The PEAR website itself has been disabled until a

    Continue reading


  • Current (10/2018) Tumbleweed on Raspberry Pi 1

    Hallo, I just had a little struggle getting the current tumbleweed to run on the original Raspberry Pi (first generation, though the revision with larger RAM). Just in case this helps anybody: I did not have any luck with a fresh openSUSE Tumbleweed image of one of the current arm6 builds. Don’t know why. Here’s

    Continue reading