User:YuviPanda

INCOMPLETE! And will probably completely change. Bewarned!

Identity
Name: Yuvaraj Pandian

Handle: YuviPanda

Working Info
Time zone: UTC+0530

About Me
I'm Yuvi, a 20 year old programmer from Chennai, India. I'm part of the dev team maintaining http://busroutes.in, a crowdsourced public transportation information site. Currently I'm working on wikifying it (http://wiki.busroutes.in) using semantic mediawiki. I was also a Google Summer of Code Student last year (2010), working with GNOME on Cheese (http://live.gnome.org/Cheese). I hack on Python, C, Vala & C# whenever I get the chance, and used to do statistical analysis in a previous life.

Contact
IRC: yuvipanda on freenode, oftc and gimpnet

Email: yuvipanda@gmail.com

Project summary
The aim of the project is to convert the Wikipedia 1.0 Bot into a series of MediaWiki extensions. While the current bot does it's job, it is written in perl, not easily usable outside enwiki and needs a lot of manual intervention to be run. Converting it to a set of loosely coupled MediaWiki extensions would enable faster development, cut out most of the manual work required to make collections, make i18n easier (via Translatewiki), enable use by other MediaWiki installations and eventually solve world poverty.

Architecture Decision
The core architecture would be decided after experimenting a bit, to ensure that it is able to run at enwiki scale without crashing and burning. Some of the methods discussed so far include:


 * A parse assessments -> store -> display architecture. This is how the current bot works. Would run once a day or so, parse all the assessment templates and store the statistics in a central database.
 * A parser hook that updates assessment data in Manual:Page_props_table whenever the talk page is parsed. Always up-to-date.
 * A parser hook that updates assessment data in a central database whenever the talk page is parsed. Always up-to-date.

More discussion and experimentation with the different ways is needed before we can settle on something final. This should be done before the official coding period begins.

Features
This GSoC project would replicate all the features of the current bot, and provide backwards compatibility to current assessment tools. This means extensions for:


 * Special Page for assessment changes log. Replacement for this
 * Magic Keyword for including statistics about assessment classes. Special Page to view them. Replacement for this.
 * Special Page to filter articles based on arbitrary criteria, and export them as collections of some sort (ideally, integrating with Extension:Collections). Replacement for this

While these are the user facing extensions, several other supporting extensions would need to be developed as well. The ones identified so far are:


 * Pluggable assessment information parsing. Initially, extension that is fully backwards compatible with the current assessment templates will be built.
 * Common data access code. Varies, depending on which architecture is picked.

Required deliverables

 * 1) Extension to provide common data access code for other extensions
 * 2) Extensions to parse Assessment Info (pluggable skeleton + implementation for current assessment templates)
 * 3) Extension to provide a Special page for assessment changes log.
 * 4) Extension to provide a Special page to view assessment class statistics (overall and per project).
 * 5) Extension to provide a magic word to include statistics about assessment (overall and per project) into wiki pages.
 * 6) Extension to provide a Special page for listing articles using arbitrary criteria.
 * 7) Integration with Translatewiki

Future work

 * 1) Integration with Extension:Collection

Community Bonding Period

 * Familiarize myself more with the codebase and the current community workflow
 * Write a few more extensions.
 * Read through the current perl source and familiarize myself with how it runs.
 * Figure out best architecture to build this project with, with input from the Mediawiki developers and some experimentation.
 * Crack jokes on IRC at appropriate times.

Participation
I'm reasonably chatty, and don't hesitate to consistently bug people. I like working in long uninterrupted blocks in the night - which makes me active at around the same time as most other people on #mediawiki. Ideally I would work via a git repo in github/private-server that is constantly updated to match trunk, but I don't mind working on a branch in svn. I'll blog regularly about my progress, for both documentation and flaunting purposes :) Ideally, I'd like to get my changes deployed in the WMF servers before next summer.

Past open source experience
I was a Google Summer of Code participant last year, working on Cheese (part of GNOME). I maintain Busroutes.in, a open source, open data, crowd-sourced website for collecting/displaying local transportation information. I also contribute to PiTiVi, a Linux Video Editor. I write code whenever I can and release those that could even remotely be useful to anyone else under a BSD License on GitHub. I've helped out at several open source workshops, and given talks. I run tawp.inI, a shorturl site for the Tamil Wikipedia. I also wrote a mediawiki plugin for Short Urls - Extension:ShortUrl, which makes the shorturl originate from the same domain as the wiki. I've also worked on forward porting a performance patch for mediawiki(see 5303).

Any other info
Architechural diagrams to come here