bookmark_borderBack 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 won’t go away. All these precious moments I would not want to miss. It would be wrong to just skip over this without this little line of appreciation. I benefit very much from my family, friends and colleagues and I hope to give back a little bit of joy and a helping hand wherever I can. Thank you all.

But if you know me: I am ambitious, I am loyal to stuff I started, sometimes stubborn and I am an open source software guy.
From this perspective, things were not going so well. While I am used to full schedules and stressful timelines at work, I had to re-prioritize my free time harshly in the middle of the first quarter. This got a lot of private projects into an undeclared hiatus and ultimately frozen for the rest of the year. It came unexpected and initially I did not grasp the extent of what was happening. To give you an idea, I even stopped reading mailing lists and most of my private inbox for a while. I did not plan any public talks and only visited FOSS events if they were job related. By coincidence, the main laptop with open source work setups also went defunct and I did not bother to replace it for several months.

If you feel you get into a similar situation, I can only advise you to take no time for regrets. Do what needs to be done and cut what you’d like to do on top until you feel ready again. Watch for the metrics: Do you start reading again? Is it more pages of fiction and non-fiction than last month? Do you take time for the occassional board or computer game? Can you make time again for you hobby, club or sports activities? Then maybe you’re set to come back to free time FOSS development – if you still like it. Don’t feel you need or must or have to. Maybe take another two weeks to question yourself before you start over. Nothing is won with spending hours in an exhausted or half detracted state.

That said, I am very positive to slowly bring everything back to a more happy status one at a time. A new FOSS work setup is available. Some of 2024’s learnings may help me to achieve more while still on a limited time budget. I am catching up with mails and yes, your pull requests will be handled. There’s also some clerical work to be done for my pet projects. It’s too early to announce a specific timeline or commitment and sometimes opportunity trumps priority. Let’s see how that works.

So what’s on the agenda?

  • Horde 6 Framework and main apps need to go to “stable”. I don’t want any ambiguity anymore. Make it run on the recent and upcoming PHP and try not to break it for any officially maintained release +1
  • PoC browser & thunderbird plugin with some very limited initial use case. Maybe a sidebar for Horde Mnemo Notes. Let’s gather some experience before making big plans.
  • Quality of life for aspiring developers: Documentation, test setup, reference setup
  • Modern authentication focus: I’ve done a custom 2FA/TOTP solution several years ago and I have been meaning to port it to Horde’s core for several years. The authentication stack probably needs to be revisited to make it a natural fit. I’d like to keep it nicely split into an interface part and the actual implementation so exchanging the TOTP app for some QR Code Challenge on your device, email confirmation or similar should be possible without modifying the core code.
  • Continue porting some traditional pages to the PSR-7 standard based controller framework
  • Be more active again in PHP-FIG discussions and practical maintenance work on the PSR/PER related repositories
  • Having loads of fun and learning
  • Improve JMRI‘s support for the Märklin MCAN protocol and particularly the Mobile Station 2, Central Station 3 and Can-Digital-Bahn products. This might become a bit controversial. The current implementation is very much centered on fulfilling JMRI’s minimal requirements for a connection and throttle implementation and much code is a straight port from the TAMS implementation. I’d rather build a java library with internal cohesion and a good match to the bus protocol and the device philosophy. I have read into Bob’s more specialized TrainControl and Frans Jacob’s standalone program. I appreciate how much more cohesive and maintainable their implementation is. They achieve this by not letting an external frame dictate their internal structure and mental model. Of course this will need some glue to match it with JMRI’s wider logic but it’s also a great opportunity to simplify unit testing.

That’s already a tall order and I am sure more ideas and desires pop up along the way. No explicit priority, no promises, no commitment.