It's a blog

Category: Posts (page 1 of 11)

WBStack Infrastructure

WBStack currently runs on a Google Cloud Kubernetes cluster made up of 2 virtual machines, one e2-medium and one e2-standard-2. This adds up to a current total of 4 vCPUs and 12GB of memory. No Google specific services make up any part of the core platform at this stage meaning WBStack can run wherever there is a Kubernetes cluster with little to no modification.

A simplified overview of the internals can be seen in the diagram below where blue represents the Google provided services, with green representing everything running within the kubernetes cluster.

Continue reading

WBStack – November review

It’s been roughly 1 month since WBStack appeared online, and it’s time for a quick review of what has been happening in the first month. If you don’t already know what WBStack is, then head to my introduction post.

The number of users and wikis has slowly been increasing. In my last post I stated ” 20 users on the project with 30 Wikibase installs”. 3 weeks after that post WBStack now sits at roughly 38 users with roughly 65 wikibases. Many of these wikibases are primarily users test wikis, but that’s great, the barrier to trying out Wikibase is definitely lowered.

If you would like an invite code to try WBStack, or have any related thoughts of ideas, then please get in touch.

What’s changed

As WBStack is a shared platform, all changes mentioned in this blog post are immediately visible on all hosted Wikibases. In the future there will be various options to turn things on and off, but at this early stage things are being kept simple.

Continue reading

An introduction to WBStack

WBStack is a project that I have been working on for a couple of years that finally saw the light of day at Wikidatacon 2019. It has gone through a couple of different names along the way, MWaas, WBaas, WikWiki, OpenCura and finally WBStack.

The idea behind the project is to provide Wikibase and surrounding services, such as a blazegraph query service, query service ui, quick statements, and others on a shared platform where installs, upgrades and maintenance are handeled centrally.

Continue reading

Changing the concept URI of an existing Wikibase with data

Many users of Wikibase find themselves in a position where they need to change the concept URI of an existing Wikibase for one or more reasons, such as a domain name update or desire to have https concept URIs instead of HTTP.

Below I walk through a minimal example of how this can be done using a small amount of data and the Wikibase Docker images. If you are not using the Docker images the steps should still work, but you do not need to worry about copying files into and out of containers or running commands inside containers.

Continue reading

Your own Wikidata Query Service, with no limits (part 1)

The Wikidata Query Service allows anyone to use SPARQL to query the continuously evolving data contained within the Wikidata project, currently standing at nearly 65 millions data items (concepts) and over 7000 properties, which translates to roughly 8.4 billion triples.

Screenshot of the Wikidata Query Service home page including the example query which returns all Cats on Wikidata.

You can find a great write up introducing SPARQL, Wikidata, the query service and what it can do here. But this post will assume that you already know all of that.


Here we will focus on creating a copy of the query service using data from one of the regular TTL data dumps and the query service docker image provided by the wikibase-docker git repo supported by WMDE.

Continue reading

Wikidata Map July 2019

It’s been another 9 months since my last blog post covering the Wikidata generated geo location maps that I have been tending to for a few years now. Writing this from a hammock, lets see what has noticeably changed in the last 9 months using a visual diff and my pretty reasonable eyes.

Wikidata “Huge” map generated on the 13th May 2019
Continue reading

Santa Elena (Monteverde, Costa Rica) to Granada (Nicaragua)

I’m writing this post in the hope that someone making the same journey will find it somewhat useful. We were a bit uncertain how our journey was going to pan out, but it ended up working pretty well.

If you want to know what we ended up doing, skip the “Initial research” section, and head straight to “The journey”.

Initial research


We inquired about the prices of shuttles from our hostel and received 2 prices. The first was $100 per person which would only get us to the boarder. The second for $70 per person that would get us all the way to Granada. These options were both over budget, so a shuttle was a no go.

Public bus

The hostel also provided us with some bus options, both leaving from the bus stop / station in the center of the town (Google maps).

Option 1 would take us to a place called Lagartos (Google maps) leaving from the stop at 6am. Option 2 would take us to La Irma (Google maps) leaving from the stop at 4:20am.

Map showing the 2 bus options aa part of the first leg from Monteverde to Grenada

There were also options later in the day, but we wanted to get going as early as possible.

Some posts and comments online mentioned other bus times that our hostel and the bus operators did not seem to know about, so be careful to confirm what you read.

Inter country coaches

Tica Bus, Nica Bus and Central Line all run services from Costa Rica into Nicaragua.

Tica Bus gives you the option to reserve / book online at least 1 day in advance. I never really figured out the websites of the other 2 services.

Screentshot of Tica bus booking options

All of these services will run along the Inter American Highway (Route 1). You may or may not be able to flag one down anywhere along the route (we did, keep reading).

If you’re trying to flag them down it might be worth familiarizing yourself with what the buses look like online first, they can pass you by pretty quickly otherwise.

The journey

The journey ended up being relatively stress free even with nothing booked in advance. Perhaps luck was on our side?

We were planning on booking the Tica Bus online once at La Irma, but then realized that bookings had to be a day in advance.

Public bus to La Irma

Getting up at 03:30 we packed up and headed to the bus stop arriving just after 04:00. There we sat in the car park waiting for the bus to arrive after checking with the security guard of the shopping complex that we were in the right place.

The front of the Monteverde bus shop, which is next to where the bus stops

The bus arrived at 04:20, we paid 1200CRC each to driver and set off at 04:30 with about 4 passengers.

The inside of the bus to La Irma

The bus stopped a few times along the way becoming almost half full, before emptying again a few stops before La Irma, where we arrived at 06:20

Bus from La Irma

We ended up sat at the bus stop for nearly 2 hours, which was part of our vague plan. We were waiting for the Tica Bus that departs San Jose at 06:00, which should pass by La Irma between 08:00 and 09:00, but we ended up getting on something earlier.

If you also end up waiting here for a while then there is a free toilet across the road on the left side of the fuel station.

The bus stop at La Irma

The first bus to pass us after being at the stop for 10 minutes was a local bus to Liberia, which it may have made sense to get on as it is on the route of many of the inter country buses and local buses. However this wasn’t in the plan, and while trying to figure out if it made sense the bus drove off.

Next a Central Line bus drove past us while we were trying to flag them down. Not sure if they were full? Didn’t see us? Didn’t care? Or just generally don’t stop at random stops.

Finally a Nica Bus drove past and pulled in for us. We checked that it was heading to Grenada and hopped on board.

The Nica bus cost us 28USD each for the bus itself, and here we also paid 23 USD for the boarder entry and exit fees. The exit fee is only 7USD and entry 10USD so the conductor got 6USD from each of us for the service.

Side of the Trans Nica bus

Exiting Costa Rica

The Tica bus arrived at the boarder crossing at around 11:05 (there was a crash on the road on route that likely delayed us by 15-30 minutes).

There was no queue to exit Costa Rica, only the people there were on our Bus. Passport stamping only took a few seconds once at the front of the line, then we got back on the bus to drive toward the Nicaraguan checks. At this point we left our passports and one of our paper forms (for entry) with the bus conductor.

Entering Nicaragua

The bus continued down the road for a few hundred meters before reaching the rather chaotic Nicaragua entrance.

Everyone got off the bus with all of their belongings and entry form (but no passport). There were lots of people offering money exchange and selling food and trinkets, so prepare to be a bit bombarded! We entered the building, walked straight past a set of desks to an x-ray machine for our bags. Here they took our entry paper, our bags took a quick trip through the x-ray machine and then we walked back around the outside of the building to the bus.

Here we waited for our passports to re appear with someone that worked at the boarder, where they were handed back to us as we got back on the bus. I guess this is where they check your documents against your appearance, although they have already given the stamp and visa at this point.

Entering Nicaragua took us roughly 35 minutes. We did not need any proof of onward travel, but did have to write down where we would be staying on the entry forms.

Continuing to Grenada

The rest of the travel was pain free, the bus stopped in Grenada at around 13:45 at the intersection of Calle Elena Arellano and Calle Arroyo Carita (Google maps).

From there we just walked to our Hostel. You can also get taxis to anywhere in the town for roughly 0.50 USD per person (15 NIO currently).

Notes & Links

While sat at the La Irma bus stop I found a very good blog post talking about going from Monteverde to Nicaragua. It was part of my inspiration for writing this post.

The Tica Bus route that we were aiming for. It seems to split in 2, I’m not sure which buses take which route.

Local bus times, if you can decode them.

A trip advisor post talking about getting a bus back to San Jose and possible getting off along the main road to catch one of the inter country buses.

Add Exif data back to Facebook images – 0.1

Screenshot of the Facebook Exif tool

In 2016 I wrote a blog post with this exact title when moving all of my pictures from Facebook to Google photos. I wrote a hacky little script which met my needs and added exif data from a HTML Facebook data dump back to the images that came along with it.

A few months ago I took another look at the script and made it slightly easier to run, but it still fell short on the usability side of things.

Since then more and more people have and been commenting and messaging me wanting to do exactly the same thing, and so I finally made a more usable version of my little tool.

Continue reading

Creating a Dockerfile for the Wikibase Registry

Currently the Wikibase Registry(setup post) is deployed using the shoehorning approach described in one of my earlier posts. After continued discussion on the Wikibase User Group Telegram chat about different setups and upgrade woes I have decided to convert the Wikibase Registry to use the prefered approach of a custom Dockerfile building a layer on top of one of the wikibase images.

I recently updated updated the Wikibase registry from Mediawiki version 1.30 to 1.31 and described the process in a recent post, so if you want to see what the current setup and docker-compose file looks like, head there.

As a summary the Wikibase Registry uses:

  • The wikibase/wikibase:1.31-bundle image from docker hub
  • Mediawiki extensions:
    • ConfirmEdit
    • Nuke
Continue reading

wikibase-docker, Mediawiki & Wikibase update

Today on the Wikibase Community User Group Telegram chat I noticed some people discussing issues with upgrading Mediawiki and Wikibase using the docker images provided for Wikibase.

As the wikibase-registry is currently only running Mediawiki 1.30 I should probably update it to 1.31, which is the next long term stable release.

This blog post was written as I performed the update and is yet to be proofread, so expect some typos. I hope it can help those that were chatting on Telegram today.

Starting state


There is a small amount of documentation in the wikibase docker image README file that talks about upgrading, but this simply tells you to run update.php.

Update.php has its own documentation on
None of this helps you piece everything together for the docker world.


The installation creation process is documented in this blog post, and some customization regarding LocalSettings and extensions was covered here.
The current state of the docker-compose file can be seen below with private details redacted.

This docker-compose files is found in /root/wikibase-registry on the server hosting the installation. (Yes I know that’s a dumb place, but that’s not the point of this post)

Continue reading
« Older posts

© 2020 Addshore

Theme by Anders NorénUp ↑

Secured By miniOrange