Wiki App

From 31C3_Public_Wiki
Jump to: navigation, search

Description The first native app for mobile devices running iOS to give you convenient access to a lot of information from the wiki. This is the project page to give some more info about the project.
Has website
Persons working on Trailblazr
Tags iOS, iPhone, Wiki, Client, Hackerspace Bremen
Other projects...



The last two years I was frustrated to not being able to access the wiki information in some convenient way on my mobile devices. There were apps for the Fahrplan, but they stopped at the Fahrplan and no one seemed to care about the at least as if not even more interesting content of the wiki.

So, this year I wanted to fix this issue. It's a totally egoistic act of crafting a way to access the wiki infos on my smartphone and making the case for it. I think the wiki infos do matter and every app should take care of this.

What I did

To get access to the wiki, you need to go all the way to the tools for querying the semantic mediawiki via the Ask-feature. It is a tool hidden deep in the so called special pages. It allows to query the semantic mediawiki entities with some very proprietary query language.

You can then choose to export the results you query reveals as e.g. JSON. This is what I did. It was a PITA to assemble the queries to get all the available and useful infos. It was another PITA to actually read the JSON, because even the JSON you export is not very pretty and has some very special "features".

After crafting the JSON, I setup a cron tab on a server which does the export as JSON thing in endless repeat (as long as the wiki is up and running) all 10 minutes or so. The JSON is then sanitized on the server to make it work as expected and stored to be polled by clients. So the 31c3 infrastructure is only hit every 10 minutes by the JSON export requests.

But, due to the app at all being available the wiki should expect some more traffic from mobile devices. Because, now accessing information on the wiki is actually a snap with the app. So let's see, how the wiki server will cope with all this nice traffic.

Process of publishing

You can get an extensive overview of the final app on the website with a lot of screenshots. It was not easy to make the app available. I had little to no time to actually put that thing together. But I wanted it to be there, so I just hacked it from scratch and just reused the BarfBag-XML-Parser I had built already for the 29c3 app BarfBag which was by the time targeting the (Penta)barf-Fahrplan system which now is obsolete and replaced by the frab-Fahrplan system.

Getting an app through the review at the fruit company is always a difficult thing to do. This time things escalated because waiting time for a review just exploded in the beginning of december. Even apps which were uploaded a month earlier were hit by an increase in review time i.e. waiting for review time. This makes the appearance of the app on the AppStore nearly a small wonder. Just to let you know and keep that in mind.

Final product

31c3 wikiapp final screenshot small.png
Enjoy "a new dawn" at 31c3 congress 2014 in Hamburg!

Download on the AppStore If you need information on your smartphone e.g. about the lectures and the tracks, or you search some assembly or the DECT phone number of a user, this app will help you find it.

Easy access to:

  • Lectures (aka Fahrplan)
  • Sessions
  • Assemblies
  • Projects
  • Lightning Talks
  • Live Streams (all rooms)
  • Rooms
  • Users (removed on request)
  • Hackerspaces

Special features:

  • favourite your favourite items
  • set an alarm/reminder for lectures
  • colorthemes (many different incl. daylight theme)
  • configurable tabs (choose your fabulous four)
  • quickfinder-bar for the lectures (easily jump between days/hours)
  • Internal browser which does display SSL-transported-content (even if certs are selfsigned)
  • a pong animation while you are waiting :-)

What's special: The app does help you to browse additional information on your device, which otherwise could only be found buried in the huge congress wiki. You can easily scan e.g. the projects and their descriptions or the lighting talks. If you like something you will be able to browse it immediately.

What makes me happy: If you like the app please let me know in a nice review.

Supports all iPhones running iOS 6, 7 & 8.


I hope that other apps start catching up and provide wiki access in the future, too. Also the nice room overview & the visual timetable view from the Congress app is a feature worth being copied by other apps incl. this one. Since publishing the source of BarfBag lead to no further recognizable cooperation among congress app developers, I will be just too lazy to publish this years source in time for congress. maybe I will drop that code on github in 2015.

Update: I won't publish the source of the app, but instead I just published the essential shell-script to get the JSON from the wiki.


  • I learned, that querying the wiki is not really fun and that you need a very flexible and quickly adaptive data transformation technique to make use of the extracted data and you need very solid data sanitization if things change. Others do scrape directly from webpages, that's not the worst API one can imagine, but it's not very stable, too.
  • Actually it is really difficult to create an app which is fault tolerant and stable/robust for something that changes each and every day (like the congress wiki). This is a huge challenge and may kill the usefulness of the app immediately if things are changed that are not supposed to change (e.g. JSON export format) and lead to broken functionality.
  • I learned, that not all participants of the wiki may be aware of the fact that all their data (even DECT/GSM phone number) is actually public. Though I thought that this point was clear to every user, this seems not to be the general understanding (compare hackerethics which I thought I complied with when displaying the user's congress phone numbers & which actually really has some value to me personally to get in contact and stay in contact with people)