2025 Dutch mini hackathon

Last Saturday, there was a one-day mini hackathon at the Wikimedia Nederland office in Utrecht. Just like the last time I went to one of these, I wanted to summarize the things I hacked on. As before, the atmosphere was great: relaxed and inspiring. The event space they have is working great, and in true Dutch style, the logistics worked great. I basically completed four tasks of various sizes and starting points. Completed may also be generous, that nothing is thoroughly tested and there is likely bugs to fix as soon as they get used. Thanks to User:TheDJ who helped me several times when I felt I was stuck.

Migrating to Codeberg

Last year I made a small animation for the Wikidata 12th birthday. As this have small and simple repository, I felt like a good starting task of the day was to migrate it to Codeberg. This was straightforward and just needed some minor adjustments in the README. The new thing for me was to learn how the concept of hosted “pages” works on Codeberg, and I got it working after just a few struggles. Feeling good from getting some administrative tasks that is a part of some overarching goals for me, I went on to a slightly more challenging task.

Adapting the animation for MediaWiki

A static HTML is nice, but what if I could get the animation onto a wiki? I lately learned about TemplateStyles, so this was a way to test my skills. After some struggle with changing ContentModels of a page on the wiki and sanitizing the CSS, my templatestyle showed up nicely on a test page.

Making and showing slides onwiki

This was my big goal for the day. I have enjoyed the reveal.js project and the way one can make very simple but still beautiful slides. What if I could do something similar, even if it is a lot simpler in turns of functionality, using user scripts and template styles to make it possible to create the slides onwiki and then show them in-place. No need for other presentation software or “uploading” slides. Easy to share and in a true wiki spirit also possible to collaborate or improve upon.

This turned out to be more difficult, mostly because I am not great at Javascript, but after some headbutting and repeated trial and error testing to see what was working or not I got something that has the basic functionality. With this I was positively surprised, because I wasn’t convinced that it would be possible at all when the day started (or when I failed to make progress in the middle too).

With a userscript, a templatestyle and some special html elements in the wiki page syntax it can be used. Just press the Play slideshow button and navigate with left and right arrow keys. I also spent too much time to get the previous animation to show up on a slide. It’s not a great solution but I think it fits a hackathon (see slide 6) and it is not really the part of the framework I will start using in the future so see that as a fun bonus.

Making SPARQL queries smaller

This project was almost done when I arrived and my original plan was just to get it deployed on toolforge. My initial driver to start this was just to make a tool to convert a query to a one-line query, as some other tools are requiring it and fixing them manually (even with good find and replace tools) were getting tedious. Once started, it was impossible to unsee other things that could also be cleaned up. So there I was with a tool working fairly good locally. And I am pretty sure I was this far when Albin shared a similar tool that he already had deployed, so I stopped working on it. But with some time over at the hackathon, and unable to find his tool at the moment, I added a few more options to my tool and then got it deployed at sparql-minimizer.toolforge.org.

Mini hackathon in Utrecht

Two weeks ago, I participated in the mini hackathon in Utrecht. It turned out to be quite productive and I manage to complete four different tasks. But mostly it was fun to meet wikimedians again (and they also served some tasty vegan pastries).

Wikidata based maps

First, I helped improve the map about accused witches to also have colors based on the gender of the accused person. This was done by binding the gender label to a layer. Then I also made a version for Kartographer using colors on the marker symbols.

Common properties user script for Wikidata

I have several times created a query to help me understand how a topic is modeled, by exploring which properties have a specific item as a value. There is a gadget that does something very similar to what I had in mind, Easy query. So based on that, I managed to create a user script I called common-properties.js. You can see it used in this video.

Mapframe code snippet

Similarly, I have wished for Wikidata Query Service to have Kartographer’s <mapframe> as one of the code examples in the results view. I had even created a Phabricator task for it. With some excellent help from Lucas Werkmeister it resulted in a patch to gerrit. And it has already been merged!

The new mapframe code snippet.

Podcast interview

With so many interesting people in one place, I couldn’t resist recording a special episode in English for Wikipediapodden. I talked to Siebrand Mazeland, one of the organizers, about this hackathon and hackathon organizing in general.

Mentor on Hack for Earth 2022

Earlier this week, I had the honor to be a mentor in the Hack for Earth hackathon. I had signed up to be a mentor for open source, open data and anything related to Wikimedia. Unfortunately, I didn’t get any questions that were related to this, but I did get the chance to help some of the participants to find their way around the challenges and the formalities of the contest. And I did get to record a tiny “Hello!” video that got a small spot in the closing ceremony of the hackathon.