Wikipedia:Wikipedia Signpost/2012-12-31/Interview

''Brion Vibber has been a Wikipedia editor for nearly 11 years and was the first person officially hired to work for the Wikimedia Foundation. He was instrumental in early development of the MediaWiki software and is now the lead software architect for the foundation's mobile development team.''



Brion, how did you end up becoming the Wikimedia Foundation's first employee?

I'd been working on the Wikipedia software – what eventually became MediaWiki – since slightly before the first deployment around late 2001 and early 2002. Though I started with localization and Unicode support, I expanded until I was the primary maintainer by the time the name MediaWiki rolled around. :)

For a couple years this was just volunteer development while I was in film school. Eventually, around the end of 2004, Jimmy Wales approached me about contracting half-time to make sure I could continue to work on wiki stuff. At that stage, I was working an on-campus job – on the Southern California Earthquake Center's Electronic Encyclopedia of Earthquakes – but not really taking classes any more, since I was mostly doing web development.

Back then, Wikimedia's entire annual budget was minuscule and I was worried about my pay breaking the bank – Jimmy assured me that part of what I'd be working on was content-feed support for some third-party indexers, which would directly pay for my wages; so I accepted. Half-time quickly became full-time, and I left the earthquake project for Wikimedia.

I think I still have a few credits left to complete before I can get that film degree, but it wouldn't help me much in the software development world I've ended up in. :)

What was the first year like and how did you manage to juggle all of the tasks that had to be taken care of?

The first year of paid work (2005–2006ish) involved a lot of running around and poking at everything that moved. We had very few servers and just a few volunteer server administrators. What do you miss most about the old days?

Things were a lot more rough-and-tumble, but they were also sometimes quicker. We could bang out a cool feature and deploy it immediately ... Now, we're working at a relatively fast-paced release schedule on the mobile interface, which is one of the things I like about working on those projects. '''As a lot of people know, you're somewhat of a linguaphile. Did this have a significant influence on the development of MediaWiki's multi-lingual support?'''

I'm unfortunately not very fluent in many languages, but I've always loved learning about languages. I took some German and Latin in high school, French in university, and then for fun taught myself Esperanto – a constructed language with over a century of history – and a little Japanese.

It was actually through Esperanto that I discovered Wikipedia – other posters on an Esperanto-language newsgroup pointed out the Esperanto Wikipedia, looking for volunteers to help build it.

Back then Wikipedia ran on the UseModWiki engine, a Perl-based program which had very limited multilingual support – and at the time no Unicode support at all.

I noticed that for Esperanto – which has a few optional "funny characters" – we were unable to use the proper accents and had to make do with an ASCII notation where, for instance, "sx" stood for "ŝ". So my first contribution was to make it so the characters were automatically converted for proper display, even though we still used the X-notation for editing.

Next was full Unicode (UTF-8) encoding support. UseModWiki's limitation to the Latin-1 8-bit character set made languages like Russian, Hebrew, and Japanese completely unusable – we had wikis for them, but nobody could actually write text on them. Polish Wikipedians had gone as far as to set up their own offsite wiki, reconfigured for Latin-2, so they could work until something got fixed. Once we rolled out Magnus Manske's PHP-based software (known later as "phase 2"), I added support for UTF-8 so we could switch those languages over and actually type in them.

Phase 2 was an awesome proof of concept but had major performance problems once it was deployed under real load, so it soon got rewritten by Lee Daniel Crocker into "phase 3", which developed into the MediaWiki we know today. Unfortunately Lee had forgotten to adapt my Unicode and localization work, so I had to write it (as well as the Esperanto X-translation) again for phase 3. ;)

A lot of the more recent localization work has been done by other people, but I jump in from time to time to help; some of the familiar old problems with missing fonts and keymaps – especially for Indic languages – reminds me a lot of the work I did back then!

'''A lot of your work recently has focused on better mobile support for MediaWiki. Can you tell us a bit about what you're up to on the mobile front?'''

We're working on three main areas in mobile:
 * making the website awesome in mobile browsers both for readers and contributors
 * providing a great app for popular smartphone and tablet devices, with additional offline capabilities
 * building action-driven apps for things like Commons photo uploads.

We've got a pretty good reader experience on mobile browsers now, and we're starting to work on more contributor-focused features. A basic mobile-friendly watchlist view is in early beta testing, and we've developed some experimental editing and photo upload features.

I strongly recommend an interview with Jon Robson sometime for more details on the mobile web – he's gone so far as to "dogfood" the mobile site in his desktop browser, hence adding basic editing just so he could use the mobile site all the time.

In the mobile space it's also important to have a presence in app stores, both for discoverability and because there are still things that a web page can't do by itself. We're just starting to get camera access in the browser, but offline storage, background notifications, and hooking into inter-application frameworks like the "share" feature on Android still require us to develop apps.

We've been using HTML5 technologies extended by a PhoneGap/Cordova container, but are starting to look at more "native" app development – using Objective-C for iOS and Java for Android – for better performance, easier system integration, and better compatibility with older versions of Android out in the wild.

Yuvi Panda has been doing a lot of the initial Android native work; he's worked on an app for reading the Signpost – with notifications for new issues – and a Commons uploader app that allows you to trigger it directly from the camera or gallery app.

That HTML5 app won't go to waste though: we've been adapting it to Mozilla's new Firefox OS – where HTML-based apps are native! – and plan to keep using it for BlackBerry tablets and the upcoming BB10, which also has a good HTML environment; and we have a Windows 8/Windows RT tablet app that shares some of the core JavaScript code and localization system. What other interesting projects have you worked on lately?

A couple of my pet projects from last year are getting closer to fruition. The CodeEditor extension, which embeds a syntax-highlighting editor for JS and CSS pages, has been adapted for editing the new Lua templating engine. I'm also working on updating the SVGEdit extension, which embeds a web-based vector graphics editor, allowing you to edit SVG graphics directly on-wiki. There's been a lot of new upstream activity on the editor thanks to a push from TikiWiki's Marc Laporte and others, so I'm getting excited about it again. The first thing I have to do is make a test suite to ensure that it won't damage existing files when trying to edit them.

I've also got a research project on safely embedding HTML/JavaScript mini-applications into the wiki, which I presented at the DC Wikimania last year. If I can figure out how to make that work cleanly on mobile, I'll start pushing on that and see if we can make it to production!

Finally, I've been socializing the notion of MP4 (H.264/AAC) video and audio transcoding output, which will allow us to serve video and audio to Macs, Windows 7/8 PCs, iOS, and other desktop and mobile platforms without additional local software installation. There are some ideological issues with even partial support of a patent-encumbered format, but we'll see how it goes – our goal is to get information out to people, after all.

'''What are your thoughts about the new Wikidata project? Do you think you'll have an interest in contributing to it?'''

I'm super-glad it's happening; I'm also glad I don't have to worry about it because a bunch of smart folks are working on it. What other projects besides English Wikipedia have you contributed to?

In the early days I contributed a lot of edits to the Esperanto Wikipedia as well, but I've got behind on that project. These days I mostly poke at documentation on MediaWiki.org, and do the occasional copyedit or fix when I notice something is awry.

If you had a robot copy of yourself, what would you most want it to work on?

Modernizing the desktop interface to be as awesome as we're starting to make the mobile one ... there are lots of great projects going on including the VisualEditor and the new Echo notifications and Flow notification/discussion/misc interface, but I just don't have time to work on them all. What do you see as the biggest challenge facing the Wikimedia Foundation?

Figuring out how to balance "creation" and "maintenance" modes in our community, our user interfaces, and the projects we spend money or do outreach on. On the one hand we're trying to get more people to edit, on the other hand we want stable, quality materials. We tend to scare away newbies with the second hand.

I'd also love to see an endowment fund to give us more secure long-term income. I'm so glad that we're ad-free, but the donor-drive model is hard to predict and I worry about sustainability as core projects become more "complete" in major languages.