After Event-Storming comes Event-Modeling - and then?

Since longer, the idea behind Event-Sourcing and event-based applications clicked with me and it felt very natural. After reading Martin Dilger’s Book on Event-Sourcing and Event-Modeling and building a first application “the event-based way”, I was conviced that this will be my general approach for further projects. This first application was pretty small in scope, contained only very few events, the laid out map was pretty easy to oversee and not much on this was changing during development. But now, together with a friend of mine, I’m thinkering about another application, slightly bigger - and it’s forseeable, that the much would be added, or existing stuff changed over time, once the application grows. Also building as a team brings in the requirement to have the map somewhere laid out, visible to discuss about it. And also to change it - but somehow keep track of the changes to the event-model which I understand as the (non-technical) architecture of the application.

Understanding Eventsourcing - Book Review

Thanks to Bastian Waidelich I noticed that there’s a pretty fresh and new book on Event-Sourcing and Event Modeling written by Martin Dilger: The book is available on Leanpub and also as printed edition from Amazon. About the content After having built a first application following the Event-Sourcing approach already (see https://spenden.srk-luzern.ch/ to see it live), that part of the book was not bringing me too much to learn. It was more of a repetition and good to follow and read up again to better memorize some details.

Traefik Configuration for Docker Compose Setups

Recently I played around with letting multiple smaller applications run, containerized, and published via Traefik as the central Gateway and SSL handler. Initial setup was simple - but adding more applications and separating the applications and their backend services into separate docker networks caused problems. The problem I ran into an error that was initially hard to get a grip on, because it was sometimes there, sometimes not a restart via docker-compose up changed the situation all the time (even without changes to the docker-compose.yml config file) the log-output I saw was inexistent or not helpful the error that was output when accessing the application through Traefik was just a “504 Gateway Timeout” after reaching the timeout the Traefik Dashboard showed all services, routers, everything - and everything as “healthy” without problems While trying several things to solve this issue, I two times thought I’d have solved it - then restarted the containers just to find out I was wrong and the problem was back.

A misleading error message in DB migrations

A few days ago we ran into the following error messages during deployment of a Flow 7.x based application where the deployment failed while executing the database migrations: An exception occurred while executing 'ALTER TABLE vendor_package_domain_model_something ADD CONSTRAINT FK_BD82590B2B219D70 FOREIGN KEY (entry) REFERENCES vendor_package_domain_model_something_else (persistence_object_identifier)': SQLSTATE[HY000]: General error: 1005 Can't create table `package`. `vendor_package_domain_model_something` (errno: 150 "Foreign key constraint is incorrectly formed") It took a while to understand that the migration itself was not the problem and fully OK. After using two tons of Google foo and the search in Neos’ Slack, we discovered that the error message is completely misleading and the source of the issue is coming from a completely different source!

Migrating from Kirby to Hugo

Despite working with the PHP based content management systems TYPO3 and Neos on a daily base for over 15 years, about 10 years ago when I last “relaunched” my personal website, I decided to use a different approach. Back then I decided to use Kirby that has evolved a lot since then. I never really upgraded Kirby and rarely wrote any blog posts anyway. Fast forward to end of 2022 I wanted to do some more with my website again and looked into a new static site generator so I can build the site locally or in a Gitlab CI build pipeline and just publish the resulting static files from there on. The team from the TYPO3 Camp Switzerland just started to use Hugo for their event site and while I looked at their git repository I just started playing around with Hugo. Having Hugo up and running that quickly was motivating and well, I just tried how far I can get with it.

How to list all .ch domain names

Intro Starting from January 1st 2021, SWITCH started to publish the .ch zone with all *.ch domain names as one of a few TLD operators. With this, each and everyone can have a look into all avilable and active domain names within the .ch zone that have a DNS delegation set. Details and limitations are listed on the open data page at SWITCH. Fetch the whole .ch zonefile I followed the example command that Markus Ritzmann tweeted:

Setting up ddev for Flow based projects

Intro Since years, this is one of the topics that comes back every now and then - and until now it was always a choice out of many ways that all had their good sides but also their drawbacks. Until now, I used several things to develop PHP based projects: local on Mac, with MAMP local on Mac, within a Vagrant-Box local on Mac, with Homebrew-based installations of Nginx, PHP-FPM and MySQL on a shared Development-Server But now I learned about ddev and how it solves many of the issues the above solutions had. I’ve now tested it for a few days and for now this seems to be a very cool solution:

Ways to add cache-breaking for static assets in TYPO3 Neos

Updated 2015-04-01, added solutions E, F and G Updated 2017-02-22, updated solution D The problem Given you work on a project and continuously deploy new versions of the site, you’ll probably also deliver fresh static assets like CSS and JS files. We noticed that our changes (including bugfixes) were not recognized by the browser of the user/customer… The reason was mostly, that the CSS/JS files were cached locally by the browser from an earlier visit.

Adding a lightbox effect to your content in TYPO3 Neos

The problem Neos was designed to provide a small but stable base for content management needs. This implies, that certain functionality or features are not provided by the creators of Neos upfront - but can be implemented as needed by everyone that needs it. For us, this meant that the well known “enable click-enlarge” checkbox from TYPO3 CMS just doesn’t exist in Neos - and also no lightbox effect is implemented on content images right away.

Never touch /etc/hosts again for all your development work

The problem When I develop locally on my MacBook, I use Vagrant a lot. In there I run an Ubuntu based VM with my preferred configuration with PHP-FPM and Nginx, all managed by Puppet. Included within that box is dnsmasq which handles DNS queries from within the box and it’s configured to resolve to the VM’s IP own IP address for all *.dev, *.lo and *.prod queries - and regularly lookup everything else.