Wikidata 13 presents

Today, Wikidata turns 13! 🎉 I am bringing a few small gifts. Two of them were already described in the Hackathon blog post I made earlier this week, but I’ll mention them again.

First, it was the sparql-minimizer tool, that can make your queries smaller and easier to use in other tools.

Second it was the animated Wikidata logo as a background on a wiki page. Those were also the more technical presents and the others are more creative.

One day in the grocery store, I found candy strings that came in almost red, green and blue and the way they were packaged got me associating to how we sometimes need to disentangle (detangle?) items on Wikidata. A photo shoot and some cleanup editing, and these images were made.

The last present just came in an inspiration, perhaps because I recently saw an old video of Sean Locke improvising a limerick. Anyway, here is mine.

A man from Q350.
Had statements that looked a bit shifty.
So without any force
he added a source.
With Citoid, oh wow, that was nifty.

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.

Third quarterly review of 2025 goals

The new wall overview of my goals.

Time to review my progress again, and this has been a less productive quarter than Q1 and Q2. While I have been able to update my goals continuously, it hasn’t been weekly, but on the other hand, I am very happy to have migrated them from GitHub to Codeberg! This quarter has also had some travel, and more work than anticipated which reflects in my progress. Something I should have done earlier was to create a paper version to always have just a glance away. I think I have that to thank for the progress I have been making.

The purpose of this review is to give more room for reflections on the themes I chose for 2025. For ease of reference, I have added this quarter’s goal for each theme.

Sustainability

Wikimedians for Sustainable Development 🔴

  • Goal: Make podcast about charts and SVG efforts

No podcast has been made yet. I have tried to get in contact with the developers, but no reply so far. On the other hand, my suggestion for a lightning talk about charts at WikiCon NL has been accepted.

Office of Carbon Omission 🟡

  • Goal: Marketing: set up social media account(s), podcast, video introduction.

I have only started with a script for the video, but I haven’t figured out how to visualize it yet. For social media, I will setup a new Mastodon instance, but haven’t gotten around to it yet. When I wrote the goals, I had the idea of talking about this on somebody else’s podcast, but I don’t know which yet. Ideas are welcome.

Openness advocacy

Open By Default 🟢

  • Goal: Add more details on offered services on the website.

I added one, but perhaps the one that seems most relevant for me: making Standard for Public Code assessments. I plan to add another one for Governance Game sessions too.

Govdirectory 🔴

  • Goal: Research what framework we could use for the questions.

No deeper research has been done. The thesis is that another Wikibase would be fine, but more requirements and perhaps some tests needs to be done to see if that holds up.

Wikipediapodden 🟡

  • Goal: 13 episodes published.

I must have planned some extra episodes somehow because while we did miss one regular episode, we still only got to 8. This was a mistake in my planning.

Book project 🟡

  • Goal: Write one chapter.

While I have most of a chapter done, i think it is too short and need more sources, so I won’t give myself a full pass on it.

Learning

German 🔴

  • Goal: Finish the grammar book.

I am far from having finished the grammar book Modern tysk grammatik. On the upside, I have found Nachrichtenleicht which is easy news in German that I am enjoying a lot. Additionally, Easy German, a Youtube channel I have sporadically enjoyed have launched a new platform where one easier can find material on right level, so I am planning a subscription there. I stopped using Duolingo completely after reaching a 1,500 day streak in August.

Climate change

  • Goal: –

Artificial intelligence

  • Goal: –

Health

Running and hiking 🟢

  • Goal: 682.5.5 km (averaging 5 km/day)

Even though I had a cold and have been traveling some, I am way ahead. In fact, I have already reached the yearly goal, so if I manage to stay healthy, this can be a record year all-time. (Total: 953 km, (July: 118 km, August: 67 km, September: 99))

Eating 🟢

  • Goal: Average 19 in the Daily Dozen app

Only in August when I was traveling most, and that is when I usually find it hardest to stay on top of what I eat, I dipped below 19, and otherwise I managed to stay well above it. (July: 21.52, August: 18.55, September: 21.5)

A scene under a tent roof, on a field on a sunny day. Audience backs are seen as they are facing the stage.

Talking tools and values at WHY2025

Last weekend I was at the legendary camping conference WHY2025. They had accepted my suggestion for a talk, and I was on the program under the title Why Proprietary Tooling Hurts Your FOSS Project. It was a lovely day, and the organization was remarkably advanced. And in a way, they also verified some of my talking points by already having the video published using only open source tools.

Video released as CC BY 4.0.

While the slides are fairly easily seen in the video, they are also available here.

Second quarterly review of 2025 goals

Like the last quarter, I have been updating how it is going with the goals continuously on GitHub. It has not been every week this quarter as the progress have been in a slower pace, but the updates have not been lagging much. Due to some travel with work, it has also been a bit unfocused, but I have made efforts to revisit my goals and keep them in mind.

This review is meant to give more room for reflections on the themes I chose for 2025. For ease of reference, I have added this quarter’s goal for each theme.

Sustainability

Wikimedians for Sustainable Development 🔴

  • Goal: Establish decision-making process.

Unfortunately we didn’t manage to meet that much this quarter, and it was hard to build momentum and enthusiasm.

Office of Carbon Omission 🔴

  • Goal: Add more ideas to the library (at least burning, fireworks and public transport).

Even though I clarified in the categories a bit, adding marketing as a topic, I didn’t add any new ideas.

Openness advocacy

Open By Default 🟢

  • Goal: Establish Fediverse presence.

Not only did I manage to do this, I did it by catching up on last quarter’s goal “Set up a VPS for using open source tools.” by getting a server with Yunohost that I installed Mastodon on. The server is on: social.openbydefau.lt.

Govdirectory 🟡

  • Goal: Inventorize question types and classify them.

It’s not a great classification system yet, but I have started to gather a list of kinds of questions/contacts that someone may need guidance in.

Wikipediapodden 🟢

  • Goal: 🟢 11 episodes published. 🟡 Get access to and start using an automated editing tool.

Due to some travel, we missed one regular episode but made up for it by a special episode in English and exactly 11 episodes were published.

I did try out Descript, but that was not good enough for episodes in Swedish, and even in the English episode, it didn’t help at all. The technology does not seem to be mature enough for my standards.

Book project 🟡

  • Goal: Full outline and key section done.

I think I have the outline done, but not the entire key section yet.

Learning

German 🟢

  • Goal: Get a good grammar book.

After a lot of looking I got myself the grammar book Modern tysk grammatik from Liber.

Climate change 🔴

Here I failed by missing the registration date for the course and couldn’t take it.

Artificial intelligence 🟡

  • Goal: 🔴 Pass the course Design of Circular AI-Based Services. 🟡 Pass the course Elements of AI.

Since I missed the registration of the first course, I signed up to another course and have started it. It continues the entire summer.

Health

Running and hiking 🟢

  • Goal: 452.5 km (averaging 5 km/day)

Running is still going really well, and I haven’t been sick or had any injuries so far. (Total: 669 km, April: 109 km, May: 110 km, June: 115 km.)

Eating 🟢

  • Goal: Average 19 in the Daily Dozen app

Despite some travels, I managed to keep the average high. (April: 19.93, May: 19.87, June: 21.43.)

NASA course in Open Science

Earlier this year, I attended the NASA course “Open Science 101“. It was supposed to be given last year but was postponed due to technical reasons. At least it was given this year, but after completing the good course, there was some other technical (or perhaps US administrative?) challenges and it took some time before the badge could be issued. Finally it came through, and here it is, via Credly:

Verify at Credly.

The course itself was really well made, and together with the course I took last year, I feel like I have a solid grasp of Open Science now.

En insikt för utsikt

Okjökull blir en före detta glaciär.
Jordbruk lider av oförutsägbart väder.
Värmeböljor sätter människor i misär,
gamla och fattiga speciellt i städer.
Krisen har fatal humanitär karaktär,
oroligheter lämnar barn utan fäder.
Överallt skogsbränder som hotar liv och lem.
Havsnivåhöjningarna dränker många hem.

Trots att det verkar otroligt komplicerat,
i grunden problemen har en gemensam sak.
Det är helt fel mål som vi har maximerat,
om och om slagit koldioxidsrekord med brak.
Allt för sällan har vi problematiserat,
slarvigt trott att förändring sker i sakta mak.
Låsta i systemets kortsiktiga brister.
Utan omställning räcker ej aktivister.

Och fast det brådskar sparkar massorna bakut.
Det är för svårt att förstå sitt eget bästa.
Men det finns ingen tid för framskjutna beslut.
För god effekt betyder tiden det mesta.
Det är därför politiken är helt akut
om vi vill förbättra för de allra flesta.
Men det gäller att vi kan se bortom jaget:
mot mänskligheten, det stora hela taget.

Det hänger inte på individen i sig.
En enskild individ påverkar ingenting.
Men ändå hänger allt och allas hopp på dig,
för när någon gör något händer någonting.
Att börja ställa om är upp till dig och mig.
Om alla agerar kan vi ändra allting.
Vi har råkat hamnat här mest utan avsikt,
lösningen uppnås genom klarhet och insikt.

First quarterly review of 2025 goals

Almost every week, I have been updating how it is going with the goals continuously on GitHub. This review is meant to give more room for reflections on the themes I chose for 2025. For ease of reference, I have added this quarter’s goal for each theme.

Sustainability

Wikimedians for Sustainable Development 🟡

  • Goal: Create a great yearly report. Draft decision-making process.

The yearly report came together quite nicely, the format from previous years was still helpful, even though that the submission process now already asked questions based on the Affiliate Health Criteria. While that was a bit of a surprise when starting the submission process, thanks to those criteria being in our goals for 2025, we already had a decent baseline to use for the new report style.

When it comes to drafting a new decision-making process, I didn’t get as far as I hoped. I did a review of what other affiliates are using, and found a few models that I think could be useful for our group, but lacking feedback from other members, I didn’t make a proper draft, but I do have good hopes for the next quarter goals still.

Office of Carbon Omission 🟢

  • Goal: Generalize the landing page and move the form to a “library” of actions.

Early, I started to list a few ideas of a library for more ideas. But then I got stuck on figuring out the overall design. I realized, already with the tiny prototype, that adding content would increase the cost of maintaining this site that didn’t use any tooling to build it. After some research, I decided to try out 11ty to be able to generate the site at least partly automated when adding new content. I did a quick sketch in Excalidraw to help me visualize what parts needed to be reused.

Visualizing it like this helped me a lot to get things organized. While there are more to polish on, and a lot more content to add, I feel that I succeeded in my goal to create the framework to build upon at the updated site.

Openness advocacy

Open By Default 🔴

  • Goal: Set up a VPS for using open source tools.

I did some research and found a few providers that could give me a server with Cloudron which in turn enables many open source tools. But Cloudron itself is not open source so I would prefer something similar to Yunohost. Unfortunately, I haven’t found a provider that seems to come with that in an easy ready-to-run package. I’ll do some more research, but if I don’t find a good alternative soon, I will go with Cloudron.

While not part of the goal, I did give a presentation at FOSS Backstage, Using the Commons without causing a tragedy, which I think is worth mentioning here as it was both on the theme and gave some visibility for me and the company.

Govdirectory 🟡

  • Goal: Publish previously submitted fund applications and add a way to ask for funding for them.

The previous fund applications have been published as sub-pages on Wikidata, so they are fairly easy to reuse now. One plan was to adapt them for the floss.fund but the format it had was not well suited as there we have no formal organization and the community is so open and inclusive. So we still haven’t figured out a really explicit nor easy way to ask for funding.

Wikipediapodden 🟢

  • Goal: 12 episodes published.

This ticked on like a clock in terms of episode production and exactly 12 episodes were published.

Last year I found a platform for streaming to Fediverse, but unfortunately over the holidays, that instance went offline. Recently I found another suitable instance, and we have streamed one episode over there.

I also started on next quarter’s goal, trying out an automated editing tool (Descript), but so far nothing worth continuing with as it couldn’t handle our Swedish at all.

Book project 🟡

  • Goal: Research.

This was too vague of a goal. Still, while the research has been successful in the sense that I have located and acquired a lot of material to read, the sheer amount left me unfinished. But at least of what I did read, I feel I am on the right track.

Learning

German 🔴

  • Goal: Find a good app alternative to Duolingo.

Unfortunately, I am still stuck in Duolingo. I tried another app, DW Learn German, but it was a bit buggy so I got frustrated with it. If you have any tips, I am all ears.

Climate change 🟢

  • Goal: Pass the course Climate Leadership in the Private Sector.

I passed the course! And inspired by the Open Science course last year, I published my assignment on Zenodo.

Artificial intelligence 🟢

  • Goal: –

No goals for the quarter, and of top of that I feel like I have stayed reasonably up-to-date with news. I did apply to an introductory course for the summer at Linköping University and one for the fall at Halmstad University, focused on ethics.

Health

Running and hiking 🟢

  • Goal: 225 km (averaging 5 km/day)

Here I am crushing it (January: 129 km, February: 100 km, March: 106 km). I have got myself a good habit of running almost every day. In January, I had a small pain in my calf, similar to my injury last year, so I did make the distances a little bit shorter each day, but the consistency still makes the average be higher than the target.

Eating 🟢

  • Goal: Average 19 in the Daily Dozen app

At home, checking the boxes is easy and have become a habit (January: 20.55, February: 20.64, March: 20.74). On my trip to FOSDEM in Brussels, I managed to plan meals pretty well to not loose out too much, but the FOSS Backstage in Berlin was harder. Even though the food was of unusually high quality, it was not checking the nutritional boxes to a desired extent.

At FOSS Backstage 2025

Two weeks ago, I went to the FOSS Backstage conference in Berlin. I have been to one before, and also presented virtually on it, but this was the first time with a full size talk on-site. Even though it was the first time I talked on this topic, it felt okay. And now the video of the talk Using the commons without causing a tragedy is published on their YouTube channel.

Here are the slides I used.

During lunch, they were still asking for lightning talks in the evening, and after a quick thought, I wrote a submission. It was selected, which led to an even quicker creation of slides for How to self-assess your codebase towards the Standard for Public Code.

All in all, the conference was well organized and the catering was lovely. I am looking forward to participate in and contribute to future editions of FOSS Backstage.

Course in Climate Leadership in the Private Sector

This winter, I finalized the trilogy of climate leadership courses at Uppsala University. The last part was the Climate Leadership in the Private Sector, 3 ECTS. This course was just as inspiring as the ones for public administrations and strategic transitions.

Screenshot from the central course register Ladok (the only possible grades were pass or fail).

And this time in the assignment I managed to tie together my thoughts about openness and sustainability. I wrote about how Houdini Sportswear with all their experience in sustainability can become more than a role model and even reach the level of a public educator. In this spirit, I have also decided to publish my assignment publicly and get a DOI for it (as the university does not do this by default or offer that services optionally yet). It is available on Zenodo as DOI: 10.5281/zenodo.15011039 (it is written in Swedish).