German Perl/Raku workshop 2025: a retrospective
Paul Cochrane 🇪🇺

Paul Cochrane 🇪🇺 @peateasea

About: Geek, hacker, jack of all trades, multi-purpose software developer.

Location:
Germany
Joined:
Sep 28, 2020

German Perl/Raku workshop 2025: a retrospective

Publish Date: May 28
0 0

Last week I attended the German Perl/Raku workshop 2025 in Munich, Germany. This is a retrospective of my experiences there and a summary of the talks.

Travelling by train down from Hannover to Munich, I arrived on time (including my connection in Nuremberg)! Considering how bad the punctuality of Deutsche Bahn has become, it’s hard to know if that was a good omen or a bad one. I think it must have been a good one, because this year’s GPW was really interesting and a lot of fun.

It was great to be able to catch up with old friends and meet new people. I also enjoyed having a good yarn about multifarious topics at lunch and over beers after each day’s talks.

As per usual, I took many notes during the talks; the full details are not really that interesting, hence I’ve summarised each talk below.

Pre-conference meetup

Before the workshop proper, many people met up at the local L’Osteria, where the pizzas are much larger than the plates provided for them. Much beer and pizza was had by all and it was nice to chat with people I’d not seen in a while and catch up with what’s been happening in their lives and in the world of Perl.

Day 1

After having been shocked at how much two filled rolls and a coffee cost for breakfast at a bakery in Munich (wow, Munich is expensive compared to the rest of Germany!), I toddled my way over to the workshop venue to catch up with some familiar faces and saw some people I haven’t seen in years, which was really nice. The organisers had a very relaxed program with talks on each day starting at 10am. This is great for a late riser like myself!

Wieland Pusch - API Testing with Bruno

I’d not heard of postman or Bruno before this talk, so it was interesting to find out about the availability of such services. In the past, I’ve developed and tested APIs without using a specific service for the task. I guess when things get complex, that it’s a good idea to get as much help as one can get. Bruno seems to provide a lot of help and functionality when creating an API; a tool I need to remember to use in the future.

Lee Johnson - Processor Deduplication

Lee’s work is really interesting because of the constraints there are on development. There’s a legacy codebase to contend with, but also because the company handles payment processing, there’s a lot of money being moved around and hence the risks involved in making a mistake are huge. This makes refactoring, reducing technical debt and removing dead code an interesting challenge. In this talk, he described some of the situations he had to deal with and how he was able to reduce duplication in the codebase. The main takeaways:

  • test the code thoroughly before making any changes to it,
  • domain knowledge is key, and
  • familiarity with the codebase is very important and feeds back to domain knowledge.

Stefan Rother - OTOBO 11 und die neue CMDB als Datenspeicher

OTOBO is a fork of OTRS. These are more than just ticket systems; they are full-scale IT infrastructure management solutions which can be extended to beyond IT systems. A previous job introduced OTRS as its software solution to support a transition to ITILv3, so I’ve had some experience with the breadth and complexity of such systems. Stefan described in particular the new CMDB (configuration management database) that they’d developed (upon request of NATO no less) for tracking and managing configurations to IT systems. The flexibility of the new system was rather impressive.

Sören Laird Sörries - Perl Mongers (DACH) - Perl User Gruppen und User-Treffen

Sören described what Perl Mongers groups are (Perl user group meetups) and wanted to get people interested in starting and/or supporting Perl user groups in their area.

Paul Cochrane (ptc) - Building Map::Tube maps: a HOWTO

My own talk gave a whirlwind tour of how to create a Map::Tube map. This is a deep rabbit hole that I’ve fallen into recently and have written several blog posts about. The talk is effectively a compressed version of the Map::Tube HOWTO series. My talk seemed to go down well. I was a bit worried that given the calibre of people in the room that a beginner-level talk would be boring, but I got a lot of positive feedback afterwards which was really nice.

Dave Lambley (davel) - Cloudy Perl

I saw Dave give a similar talk at LPW 2024 last year. He gives a good overview of the available modules and technologies that one can use to access and use Amazon’s cloud. What’s particular interesting about his review of the current state of the art is to learn about where the rough edges and inconsistencies are. Even within a given Amazon service, the API is often inconsistent and thus likely reflects conflicting concerns in the groups developing the APIs. It’s nevertheless possible to run one’s Perl code on the Amazon cloud and with the information in the talk one can avoid sharp edges in both Amazon’s APIs and the many Perl modules available to interface with those APIs. One thing I found interesting is that one can bundle code into a zip file and then deploy it to Amazon’s lambda service. It thus seems a handy way to get code up and running in the cloud.

Sören Laird Sörries - Hack the World a Better Place - Hacker School

Even though Germany is currently the largest economy in Europe, there are still very many children growing up in poor circumstances. One idea to help these children (and their families) achieve more financial stability and move to higher paying jobs (e.g. in the tech sector) is via the Hacker School project. This is a volunteer organisation that Sören is involved with that teaches school students programming and IT-related skills. Hacker School has created very good resources and provides support to teach IT-related concepts and skills to school students. There are many Hacker School groups spread across Germany and Sören encouraged people to join an existing group in one’s home town or start a new one.

Salve J. Nilsen (sjn) - CPAN Security and Sustainability in light of the EU Cyber Resilience Act

I made a lot of notes about this talk, which I guess is a bit surprising because it sounds like it could be rather a dry topic, since it concerns upcoming European legislation. However, it’s very important, because the legislation will affect not only big business, but also single-person software development organisations and even Open Source maintainers. The Cyber Resilience Act will come into force on the 11th of November 2027 and puts a lot of responsibility onto the “manufacturer” (i.e. that organisation or those people producing products, be it real or software-based). There are so many details here that one could discuss, but it seems like the idea is to make larger businesses take more responsibility for the software they put into their products. This is more than just maintaining a software bill of materials, but extends to taking responsibility for any security issues in the included software. This could be a positive thing for Open Source maintainers as it’s possible that more businesses will have the incentive to provide patches for security issues as opposed to relying on the maintainers to keep everything running (I guess this tries to invert the xkcd Dependency situation). One thing that I was concerned about was how small and single-person businesses are going to be able to cope with the added responsibility. It’s easy to see some businesses deciding that under the already heavy burden of bureaucracy, that it’s no longer financially viable to continue. That being said, from my later discussions with Salve about the topic, it sounded much more positive and that the opportunities and improvements (especially for the Open Source community) would outweigh the extra responsibility businesses have to carry.

Food and beer

As with any conference, after the day’s proceedings, groups dispersed in various directions in search of food and refreshment. I ended up at an Afghan restaurant where we had lively discussions over a wide range of topics. I had an interesting conversation with Max Maischein about the banking sector in Germany, the details of how the system works, the history of banking in Germany and some of the upcoming changes to how transfers work. It was fascinating!

Day 2

Martin Becker (martin) - Recreational Math: Of Planes, Perfect Differences and Pretzel Graphs

In this talk, Martin showed various examples in topology, considering planar and non-planar forms (e.g. a sphere can be mapped to the plane and vice versa, but this isn’t possible with a torus). He then went on to show connections between topology and graph theory. What sounds like could have been a very dry topic was actually very interesting and engagingly presented. For instance, a pretzel has a particular topological shape and Martin showed many other forms which look different, but have the same topological qualities (Did you know that the human body has the same topology as a pretzel? I didn’t either). Later, in the second part of the talk, he described planar difference sets, examples thereof and some use cases. He’s created a module (Math::DifferenceSet::Planar, available on CPAN) for those interested in working with such constructions.

Nicholas Clark - You Only Log Once

Nick gave advice about log messages, when to log and what is appropriate at what level, showing some examples of what not to do and how to fix such issues. For instance, one should log the error message that the programming language provides as well as any other relevant context. Log messages should be unique (e.g. sometimes code throws the same error message in slightly different contexts; that is an anti-pattern). Log messages should be able to stand on their own. For instance, some warnings might follow on from something else that was mentioned in an info message. If one doesn’t log at the info level, this extra context is lost and hence one should make the logs self-sufficient. One should also think carefully about at what level one should be logging. To aid in this, prefer modules like Log::Any (as opposed to Log4Perl) because it is more fine-grained. One should also not assume that a problem can be replicated locally, hence providing sufficient context and information in a log message is a good idea so that problems appearing in production can be more easily identified and resolved.

Mark Overmeer (markov) - Mid-life upgrade for MailBox

Mark maintains the venerable MailTools package, which was created many moons ago to create and send emails. Since email is such a complex topic (especially if one wishes to consider all the RFCs associated with email), one should instead prefer Mail::Box over MailTools. Mark created Mail::Box 25 years ago and it is a very extensive piece of software covering the full scope of email usage. He has spent time recently to upgrade the code to newer Perl versions as well as ensure that most of the RFCs that have appeared over the last 25 years are also covered by the module.

Julien Fiegehenn (simbabque) - Introducing Humans to Development (and Keeping Them There)

This talk focused on people doing work experience at a company and how this can be beneficial for both parties. There is a lot of work involved on the company side so that this works well, however there are many positive outcomes and cost reductions possible. For instance, in the UK, it’s possible to get hundreds of applications within a few days of advertising a position. If the company has had a good experience with work experience people, then one can avoid the work and risk of a standard hiring process and simply offer the job to a more well-known quantity: the work experience student. I.e. no need to wade through hundreds of applications! There are other benefits, such as improving and refining the onboarding processes at the company. The work experience student also gets to see what it’s like working in IT at a real company and can gain essential communication and work-related skills, e.g. writing tickets and documentation, learning about version control, ticket systems, code reviews and best practices. Also, they’re able to be mentored by senior staff and thus get a lot of valuable feedback about their abilities as a software developer.

Mark Overmeer (markov) - Open Console

Over the past few years, Mark has been involved in a large project involving many research institutes and universities in Europe. One part of his work in the project was to create Open Console which is aimed at providing a secure and privacy-retaining central login service for potentially millions of websites. One could compare it to OpenAuth, but which respects the user’s privacy. This is a very complex project with many moving parts. Most of it is built upon well-known technologies and standard Perl 5 web development stuff.

Conference dinner

After the day’s talks, we moved on to a Munich brewery to enjoy some traditional Bavarian food and drink. Apart from a particularly grumpy waiter (I thought that maybe this was a “cultural experience”, but was told that that wasn’t normal, so maybe he was having a bad day) the evening was a good one, being spent with lots of laughs and loud, interesting conversation.

Day 3

Harald Jörg (haj) - Sound from Scratch

Following on from his PDL Advent Calendar article from last year, Harald showed how to create music by mixing sine waves together with the correct frequencies and amplitudes. Even though as a physicist one gets introduced into how sound is made up of combinations of simpler wave patterns, it was nice to see this presented again from a different (and more practical rather than theoretical) angle. I knew, for instance, that there is white noise: noise that contains all frequencies of the spectrum all at roughly the same amplitude. What I didn’t know is that there’s also pink, brown, blue and violet noise, each named according to their equivalent optical counterparts. It was impressive to see how one can start from low level interfaces such as Audio::Aoede and then produce music in the end. Audio::Aoede can also play notes using a certain notation which culminated in in Harald reproducing (with the help of his Perl module) what I think was Bach’s Toccata and Fuge in D-minor, which was very impressive!

Ferenc Erki (FErki) - Rex use cases and patterns

I’d heard about Rex before on social media, but it was interesting to hear details from one of the core maintainers about the project. Rex is a framework for simplifying system administration and data centre automation and is therefore similar in many ways to Ansible, Puppet, Chef, etc. One interesting angle that Rex has is that it’s based directly on Perl, hence it is just a small extension of a programming language. This avoids the need to learn a new DSL as is the case with other similar tools. Just like Ansible, it doesn’t rely on any server software running on remote hosts in order to work; connection to nodes is via SSH. I liked the way that Ferenc included examples in his talk so that one had a good idea of how various common use cases can be solved. There are also test modules so that one can create tests of various services running on hosts or so that one can regularly check that various conditions are met; this is something that I suspect would be rather handy.

Sabine Rathmayer (HDBW) - Perl trifft NextGen: Was Hochschulen lehren - und KI daraus machen könnte

The HDBW is a private university in Munich and this talk discussed what programs the university offers in IT, security etc. These courses introduce students to current technologies such as AI and, importantly, information security.

Herbert Breunung (lichtkind) - Raku Quiz

Herbert explained some of the background and structure of Raku. Then he started a quiz aimed at introducing Perl programmers to Raku by showing where various stumbling blocks could lie but in a fun way. Even though I’ve been following the project since it started in the early 2000s, there were parts that I’d not seen before, so it was nice to be made aware of things which, if one isn’t using the right mindset, could trip one up.

Max Maischein (Corion) - Wie passiert ein Perl Workshop?

Max explained the background and details about organising a Perl workshop, with specifics about organising Perl workshops in Germany. This included a call to participants to propose organising the next GPW.

Lee Johnson - A Whistlestop Tour of Banking Interchange Formats

The complexities and intricacies of Lee’s work make for engaging talks. This time he explained some of the banking formats that he comes into contact with when handling payments between banks. Most of the formats are based upon standards set up in the late 60s and early 70s (and hence based upon punch cards) and thus haven’t been changed much since then. Since banks are very risk-averse, change is glacial and therefore it’s very challenging to try to use up-to-date software to communicate payments between banks. It’s also especially challenging because many banks use different, competing and often inconsistent standards. Considering all this complexity, it’s a wonder that things work at all!

Lukas Mai (mauke) - Neues von Perl 5.42

Since Renee Bäcker couldn’t make it to this year’s workshop, Lukas took on the task of explaining the new features and changes to Perl. There was a lot to get through, with internals changes which improved speed or fixed bugs (e.g. the oldest bug on GitHub, which is originally from 1999, has now been fixed). There were some changes which seemed a bit esoteric, for example the compound logical XOR assignment operator (^^=); however, this change made things more consistent with other, similar operators such as &&= and ||=. There have been diagnostics changes and improved warning messages. Also, many of the core modules distributed with Perl have seen a lot of work and improvements. It’s impressive to see how much is going on in updating and improving Perl and its core ecosystem. Perl 5.42 should be released sometime in the next month.

Max Maischein (Corion) - Wiederentdeckung Web-Entwicklung - Perl und HTMX

HTMX is seeing a lot of interest at the moment, because often the complexity of a JS and CSS bundling system, inclusion of several frameworks and compilation and minification of assets into a web application often aren’t necessary to do what one needs to do. For instance, if one doesn’t need to have a highly interactive application or use offline data, then there’s no need for the complexity and many abstraction layers that today’s web applications often rely upon. With HTMX, one can lightly extend HTML by including a single JS file. Thus, creating web apps (on desktop or mobile) is greatly simplified. Max talked us through how to create such an application showing two examples that he’d built himself. He also mentioned the pros and cons of the HTMX approach so that one had a good idea of when it would be appropriate to use it in a future project or to retrofit it into an existing project.

Homeward bound

After three and a half days of new ideas and many impressions, I was a bit worn out and glad to make my way home. I could thus spend some time digesting what I’d learned during the workshop. Again, it was great to see many friends and to meet and make some new ones!

Thanks!

Many thanks to the organisers and to the sponsors for making the event happen!

Comments 0 total

    Add comment