Project of the Month, October 2005


Description of project

MediaWiki is a wiki software package primarily developed to run Wikipedia, the free encyclopedia, and other Wikimedia projects. It's designed to handle a large number of 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 side project of the now-defunct Nupedia. Originally the site ran on UseMod, a one-file Perl script that's pretty easy to get up and running, but the project grew so quickly that it became clear a database backend was going to be necessary to manage and sort through data. Wikipedian Magnus Manske started writing new software in PHP with a MySQL backend, which Wikipedia switched to in 2002. After much further development, cleanup, and a little packaging, this in-house wiki has become MediaWiki.

What is the software's intended audience?

MediaWiki is primarily aimed at open, transparent community-built information resources like Wikipedia and its sister projects, and similar projects run by other people. We try to keep the software flexible and extensible, and there are plenty of people using it for sotware documentation, personal sites, and internal company reference 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 FOSS projects 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; on the one hand this is annoying as it doesn't always work well for them, but on the other 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 driving force in development of the MediaWiki software. We've sometimes had to abandon features 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 like Wikipedia. When people get introduced to the concept of a wiki Web site through Wikipedia, 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 other projects with somewhat different needs, and lots of third-party users would love more extensions and customizability too.

What's on your project wish list?

Our main concentration tends to be on performance and bug-squishing, but there's hidden main goal to build ultimate productivity platform. We also have a partial test suite for the wiki parser, but more thorough unit testing or regression testing would be a welcome addition.

What are you most proud of?

While there are a lot of performance improvements we can still make, the system scales well enough to run a top-40 Web site in a highly dynamic fashion where visitors can change anything at any time: Wikipedia is running MediaWiki distributed over several dozen Web servers, a half dozen database boxen, and coordinated cache clusters 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 the software powering our big wiki projects. Other volunteers still go to the university or 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 as our performance testbed.


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-party users are talking about
2004-03-24: 1.2.0 - Web-based installer script vastly simplifies installation and upgrades
2004-08-12: 1.3.0 - New theming abilities, template transclusion
2005-03-20: 1.4.0 - Major performance enhancements, improved data caching, history data 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 thing to do.

More projects of the month

Project Name: MediaWiki

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 helped you?

Providing a multiuser source control repository and mirrors for file distribution is a great convenience for a project that's just starting out. Having those things still available when your own site is broken -- priceless.