Project of the Month, October 2005

By Community Team

MediaWiki Logo

Project leaders:

Name: Brion Vibber
Age: 26
Occupation or experience: Web Application Developer
Education: USC film school dropout
Location: Southern California

Key developers

Name: Domas Mituzas
Age: 23
Occupation or experience: Database guy
Education: Vilnius University Dropout
Location: Vilnius, Lithuania

Key developers

Name: Ævar Arnfjörð Bjarmason
Age: 19
Occupation or experience: none
Education: High-school dropout
Location: Akureyri, Iceland

Key developers

Name: Tim Starling
Age: 23
Occupation or experience: Ph.D. student (physics)Education: BSc, University of New South Wales
Location: Melbourne, Austrailia

How has SourceForge.net helped you?

Providing a multiuser source control repository and mirrors for file distribution isa great convenience for a project that’s just starting out. Having those thingsstill available when your own site is broken — priceless.

Description of project

MediaWiki is a wiki software package primarily developed to run Wikipedia, the freeencyclopedia, and other Wikimedia projects. It’s designed to handle a large numberof users and pages without imposing too rigid a structure or workflow.

Trove info

  • Development Status: 4 – Beta, 5 – Production/Stable
  • Intended Audience: End Users/Desktop, Education
  • License: GNU General Public License (GPL)
  • Operating System: All POSIX (Linux/BSD/UNIX-like OSes), Linux
  • Programming Language: PHP
  • Topic: Front-Ends, Education, Message Boards, Other/Nonlisted Topic
  • Translations: English, Esperanto, French, German, Spanish
  • User Interface: Web-based

Why and how did you get started?

The wiki-based online encyclopedia project Wikipedia started in January 2001 as a sideproject of the now-defunct Nupedia. Originally the site ran on UseMod, a one-filePerl script that’s pretty easy to get up and running, but the project grew soquickly that it became clear a database backend was going to be necessary to manageand sort through data. Wikipedian Magnus Manske started writing new software in PHPwith a MySQL backend, which Wikipedia switched to in 2002. After much furtherdevelopment, cleanup, and a little packaging, this in-house wiki has becomeMediaWiki.

What is the software’s intended audience?

MediaWiki is primarily aimed at open, transparent community-built informationresources like Wikipedia and its sister projects, and similar projects run by otherpeople. We try to keep the software flexible and extensible, and there are plenty ofpeople using it for sotware documentation, personal sites, and internal companyreference use as well.

How many people do you believe are using your software?

A little Googling hints at several thousand MediaWikis out on the Web. Yikes!

What are a couple of notable examples of how people are using your software?

Aside from Wikipedia and its cousins, of course, a number of high-profile FOSSprojects are using MediaWiki for developer documentation or community sites,including Mozilla, Mono, and openSUSE.

What gave you an indication that your project was becoming successful?

We keep getting bug reports . somebody must be using it!

What has been your biggest surprise?

People keep trying to use MediaWiki for types of sites it wasn’t designed for; onthe one hand this is annoying as it doesn’t always work well for them, but on theother hand it’s rather exciting to see something different.

What has been your biggest challenge?

Keeping up with Wikipedia’s growth in popularity has certainly been a major drivingforce in development of the MediaWiki software. We’ve sometimes had to abandonfeatures that couldn’t scale.

Why do you think your project has been so well received?

Certainly part of it is being the engine that runs a high-profile project likeWikipedia. When people get introduced to the concept of a wiki Web site throughWikipedia, they probably check us out first.

Where do you see your project going?

We hope to continue to make the software more modular and extensible while keeping(or improving) scalability. Wikimedia is branching out from Wikipedia into otherprojects with somewhat different needs, and lots of third-party users would lovemore extensions and customizability too.

What’s on your project wish list?

Our main concentration tends to be on performance and bug-squishing, but there’shidden main goal to build ultimate productivity platform. We also have a partialtest suite for the wiki parser, but more thorough unit testing or regression testingwould be a welcome addition.

What are you most proud of?

While there are a lot of performance improvements we can still make, the systemscales well enough to run a top-40 Web site in a highly dynamic fashion wherevisitors can change anything at any time: Wikipedia is running MediaWiki distributedover several dozen Web servers, a half dozen database boxen, and coordinated cacheclusters on three continents.

If you could change something about the project, what would it be?

To be able to use Subversion instead of CVS.

How do you coordinate the project?

We have discussion on the code and what should be done on IRC, the mailing list(wikitech-l) and on our bug tracker.

Do you work on the project full-time, or do you have another job?

I am now working for Wikimedia full-time; MediaWiki is my main responsibility as thesoftware powering our big wiki projects. Other volunteers still go to the universityor have a full-time job in the IT industry.

What is your development environment like?

I use a PowerBook running Mac OS X and a homebuilt Athlon box running Ubuntu Linux.Most of my PHP work gets done in BBEdit. And of course we have the biggest wiki asour performance testbed.

Milestones:

2002-01-25: Wikipedia switches from UseMod to the precursor of MediaWiki
2002-07-??: Partial rewrite; this code base becomes MediaWiki
2003-08-29: First “stable” public snapshots of MediaWiki
2003-12-08: 1.1.0 – First version number applied so we can tell what third-partyusers are talking about
2004-03-24: 1.2.0 – Web-based installer script vastly simplifies installation andupgrades
2004-08-12: 1.3.0 – New theming abilities, template transclusion
2005-03-20: 1.4.0 – Major performance enhancements, improved data caching, historydata compression
2005-10-05: 1.5.0 – Database backend redone for scalability, data integrity????-??-??: 1.6.0 – Improved portability: PostgreSQL and Oracle support out-of-the-box

How can others contribute?

Organizing a repository of extension plugins and skins would be a really cool thingto do.