User:SPQRobin/GSoC/application

Identity

 * Name: Robin Pepermans
 * Email: robinp (dot) 1273 (at) gmail (dot) com
 * Project title: Incubator improvements and language support

Contact/working info

 * Timezone: Europe/Brussels (UTC+2)
 * Typical working hours: 11am to 2-3am (UTC+2), but in the first part I have often less time, more like 8pm to 1-2am
 * IRC or IM networks/handle(s): SPQRobin

Project summary
This project is a follow-up to my ongoing work as a volunteer to improve the language support in MediaWiki and to improve the usability of the Wikimedia Incubator.

I would like to include a default list of languages names in English, which is currently in Babel but can be useful in MediaWiki in general, and also for WikimediaIncubator specifically because the automatic info pages otherwise do not recognise language codes such as Wt/max. I'd also improve the current automatic info page on Incubator and extend it to be used as a replacement for Template:Test_wiki. This will include a special page that guides contributors in their first steps to start on Incubator and start a test wiki.

This will be an improvement, on the one hand in core MediaWiki by avoiding duplication of including language names (it is in Babel but would benefit MediaWiki generally), extending its coverage and improving performance. For Incubator there will be a usability benefit by making it easier and more clear starting a new wiki, as well as hopefully making maintenance easier for Incubator administrators.

Required deliverables
Core WikimediaIncubator
 * A cache (probably CDB) for language names (there is currently a performance issue when using the second parameter of  a lot of times)
 * Include a default list of (English) language names in MediaWiki core, useful for Babel, WikimediaIncubator
 * Improve the current automatic info pages like Wp/nl and Wt/xyz
 * Show localised logos (via wgConf)
 * Link "if you want to start this wiki" to a special page ("IncubatorFirstSteps")
 * Create a special page ("IncubatorFirstSteps") that lets you create the main page, update the info page, and set your preferences
 * A parser function for info pages as an improved replacement for incubator:Template:Test_wiki
 * In cases where language codes need to be entered, make it possible to select the right one with a auto suggestion/filtering of language names/codes (perhaps like the priority languages of the page translation feature)

If time permits
More ambitious things that are likely a bit too much work to include in this project.

Core WikimediaIncubator
 * Intuitive language picker: instead of a list sorted by language code, an inputbox with suggestions (easy, but it needs to be good)
 * Ability to specify a per-page language: a per-revision language passed to getPageLanguage, either core or extension. With a language selector in the edit page to change it.
 * If possible, hide prefixes (Wx/xyz/) of links and template calls in the edit form

Project schedule

 * April: familiarize with Git/Gerrit
 * May: plan how to concretely code the various deliverables, coordinate with mentor
 * [May 21: begin coding]
 * First part: do core part (language names cache, English languages in core) plus some preparations for Incubator, such as a first working version of the info page parser function and IncubatorFirstSteps
 * Note: exams ~ 30 May - 21 June, so I will have less time but still working on it
 * [July 9-13: Mid-term evaluations]
 * Second part: finish info page parser function and IncubatorFirstSteps, improve automatic info page (integrating the special page; use localised logos); the language code inputbox improvement; and perhaps any other thing listed as "if time permits"
 * [August 13-20: end]

About you
Starting as a Wikipedian, I became a Wikimedian and since last year an active MediaWikian (:p). Even though I'm studying something like public management (including parts of political sciences & law), I enjoy coding and I love languages.

I believe in making Wikimedia and the MediaWiki software a very multilingual and internationalized project, and that is what I try to work on as much as I can. I work as a volunteer together with the internationalization team, and I've participated in the Mumbai Hackathon to help out.

I also believe in making the Incubator as open as possible so anyone can start a wiki in their own language. I created the WikimediaIncubator extension, which makes things easier on the Incubator. I'm one of the main administrators there.

I'm also a member of the language committee, which approves projects that are active on Incubator into their own separate wiki.

I've also been active on translatewiki.net, both as a translator to Dutch and helping out generally.

Participation
I would commit directly to trunk and the WikimediaIncubator extension (which is already deployed). I still have to get used to Git/Gerrit though :)

When I am online, I am almost always available on IRC (#mediawiki, #mediawiki-i18n, ...). I can communicate my general progress on my blog (blog.robinpepermans.be).

After this project, I will certainly still participate in improving MediaWiki.

Past open source experience
I am a regular contributor to the MediaWiki codebase. I have especially created the WikimediaIncubator extension, and improved the MediaWiki internationalisation, in particular bidirectional support and by introducing the page content language. I have also worked a bit on the Interwiki extension and other extensions. See here for all my commits (at the moment of writing I haven't done any Git commits yet).

Consequently I am familiar with the MediaWiki code, and I learnt a lot of PHP programming through hacking MediaWiki. I also know of course HTML and CSS, but not as much JavaScript as I would like to.

(I also have a toolserver account of which the code is mostly public.)

Any other info
See also Extension:WikimediaIncubator.