WBStack in 2021 and the future

This entry is part 9 of 12 in the series WBStack

2021 is nearly over, WBStack is over 2 years old (initially announced back in 2019), and has continued to grow. The future is bright with wikibase.cloud looking to be launched by Wikimedia Deutschland in the new year (announced at WikidataCon 2021), and as a result, the code under the surface has had the most eyes on it since its inception.

Let’s take a closer look at some of the developments this year, and the progress that WBStack has made.

Current Usage

WBStack now has 148 individual user accounts registered on the platform that enabled wiki creation. These accounts have created 510 wikis with Wikibase installed since the platform was initially put online, and 335 of those wikis are still currently published (the other 175 have been deleted).

Nov 2019April 2020May 2020Nov 2021Dec 2021
Platform Users387076139148
Non deleted Wikis145306335
All Wikis65178226476510
Pages1.4 million1.9 million
Edits200,000295,0004.1 million4.6 million

Read more

Tech Lead Digest – Q3/4 2021

This entry is part 5 of 5 in the series Tech Lead Digest (wmde)

It’s time for the 5th instalment of my tech lead digest posts. I switched to monthly for 2 months, but decided to back down to quarterlyish. You can find the other digests by checking out the series.

🧑‍🤝‍🧑Wikidata & Wikibase

The biggest event of note in the past months was WikidataCon 2021 which took place toward the end of October 2021. Spread over 3 days the event celebrated Wikidatas 9th birthday. We are still awaiting the report from the event to know how many folks participated, and recordings of talks will likely not be available until early 2022. At which point I’ll try to write another blog post.

Just before WikidataCon the updated strategy for Linked Open Data was published by Wikimedia Deutschland which includes sub-strategies for Wikidata and the Wikibase Ecosystem. This strategy is much easier to digest than the strategy papers published in 2019 and I highly recommend the read. Part of the Wikidata strategy talks about “sharing workload” which reminds me of some thoughts I recently had comparing Wikipedia and Wikidata editing. Wikibase has a focus on Ecosystem enablement, which I am looking forward to working on.

The Wikibase stakeholder group continues to grow and organize. A Twitter account (@wbstakeholders) now exists tweeting relevant updates. Now with over 14 organizational members and 15 individual members, the budget is now public and the group is working on getting some desired features implemented. If you are an organization or individual working in the Wikibase space, be sure to check them out! The group recently published a prioritized list of institutional requirements, and I’m happy to say that some parts of the “Automatic maintenance processes and updating cascades should work out of the box” area that scored 4 have already been tackled by the Wikidata / Wikibase teams.

Read more

WordPress plugins

Back in 2018 I wrote a post listing the WordPress plugins that I use on this blog. That post only received 122 views, but it was specifically written for some folks I know that are running WordPress blogs. Another friend (you know who you are) recently told me they were thinking of starting a blog, so here goes with a small update around the WordPress plugins I now use.

Generally, I would describe my blog as a developer blog, so there is quite a heavy focus on code, embedding code, security and making sure things are right with https and not leaving 404 pages behind.

Comparison

So what has changed in the last 3 years? 3 plugins have gone, and 8 have been added! And yes, this is a complete list.

Find links in the Notes & Discussion column where I dive into a few different categories of these plugins.

Read more

Dispatching custom event in Fitbit SDK

I just upgraded my Fitbit charge 2 from 2016, to a Fitbit sense from 2020. After getting everything set up I took a quick look at the developer documentation and found myself in a web based IDE called Fitbit studio and before I knew it I had sideloaded a development demo app onto my new device.

And before I knew it, I had another side project in my repertoire. Make a cool little app that does stuff, just for me!

While developing the ability to switch between various “pages” I encountered the need to dispatch events with custom data. Though seemingly the Fitbit SDK doesn’t use the Javascript norms here and needs a slightly different approach. So here is what I learnt.

Read more

Reflection on filling a new Wikidata item

A few days ago I watched a Twitch stream by Molly / GorillaWarfare where they created the Louis W. Roberts English Wikipedia page. I decided to follow along and populate the matching Wikidata item (Q109662645) with as much information as I could from the same references that were being found for the Wikipedia article.

Along the way, I remembered some of the quirks of the manual editing experience for Wikidata and noted some other things that generally might be interesting folks.

This is a write-up of those thoughts.

Read more

mediawiki-docker-dev in mwcli

The original mediawiki-docker-dev environment was created by accident and without much design back in 2017.

In 2020 I started working on a new branch with some intentional design and quite liked the direction.

And now finally, the all of the mediawiki-docker-dev functionality exists in a new home, with more intentional design, tests, stability, releases and more.

I’ve already written a brief history of the tool in a previous post so now I’ll focus on what mediawiki-docker-dev looks like in the mwcli environment for the current version 0.8.0.

Read more

mwcli CI in Wikimedia GitLab (docker in docker)

mwcli is a golang CLI tool that I have been working on over the past year to replace the mediawiki-docker-dev development environment that I accidently created a few years back (among other things). I didn’t start the CLI, but I did this mediawiki-docker-dev like functionality.

As some point through the development journey it became clear that one of the ways to set the new and old environments apart would be through some rigorous CI and testing.

This started with CI running on a Qemu node as part of the shared Wikimedia Jenkins CI infrastructure that is hooked up to Gerrit, where the code was being developed. This ended up being quite slow, and involved lots of manual steps.

A next iteration saw the majority of development take place in my own fork on Github, making use of Github Actions. Changes would then be copied over to Gerrit for final review once CI tests had run.

And finally the repository moved to the new Wikimedia GitLab instance (work in progress), where I could make use of GitLab Runners powered by a machine in Wikimedia Cloud VPS.

Screenshot of GitLab pipelines in action for the mwcli project

Read more

addwiki php libraries 3.0.0

Back in 2014 I wrote a small collection of PHP libraries, releasing 2.0.0 of the base library in 2015 for interacting with MediaWiki and Wikibase. My goal back then was to create a stable base that PHP bot frameworks could be built on, while also experimenting with some framework like features in surrounding libraries.

And now, version 3.0.0 has been released, with a couple of new features, such as OAuth authentication, and lots of refactoring to make the libraries easier to work with and contribute to.

Read more

Developing on Windows, the WSL life

The Windows developer experience has evolved quite allot in the last 5-10 years. I now spend most of my development life running Windows with WSL2 and using Windows Terminal and winget. So here are a few pointers from my experiences so far.

WSL (WSL2)

WSL2 is what you want! The first version of WSL was a step in a great direction, but had many cons, such as IO performance. It should be fairly easy to install and will provide you a full Linux Kernel accessible from within Windows.

WSL also has access to your Windows filesystem via a mount at /mnt/c. Generally if you are using Linux tooling, you’ll want your file access to remain in the Linux file system. For example, I have almost all of my git repositories checked out in my Linux file system. For the odd repository that I use mainly Windows tooling I leave in Windows land.

Read more

Delete all Github releases, using the Github cli

If you are like me, at some point while developing projects on Github you will have started and stopped using releases, opting to switch back to only creating tags. Github defaults leave you in a bit of an awkward position here where the “Releases” section in the side bar will continue to show your old … Read more