User:YuviPanda

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 project is to make the dump/import backend pluggable, so dump formats other than XML can be easily added as extensions. I would also add a JSON Backend, make sure the XML backend works properly (and in a fully backwards compatible way) and profile the XML backend to increase its performance. Special:Export and Special:Import should also use the new backend.

TODO: Add details about proposed architecture here.

Required deliverables

 * Backwards-compatible-yet-pluggable dump/import backend
 * JSON Backend Implementation
 * XML Backend Implementation (flicked from current one)
 * Profiling + Performance Enhancements for XML Backend Implementation
 * Additional formats supported in Special:Export and Special:Import

Community Bonding Period

 * Familiarize myself more with the codebase and the current community workflow
 * Read through and understand the scripts that currently run WMF dumps. Cleanup a bit if possible/necessary.
 * Land a few patches (more profiling!) in trunk, passing CR successfully.
 * Crack jokes on IRC at appropriate times.

Official Coding Period

 * Target 1 (2 Weeks):
 * Create the pluggable backend skeleton. Write a very simplistic CSV dumper/importer to exercise the various parts of the backend. Make sure the design doesn't suck.


 * Target 2 (2 Weeks):
 * Port the current XML dump/import code as-is to the new backend. Make sure that everything is backwards compatible.


 * Target 3 (2 Weeks):
 * Create a JSON dump/import backend.


 * Code Cleanup Week (1 Week):
 * Cleanup code wherever needed. Write more documentation.


 * Target 4 (3 Weeks):
 * Move Special:Export & Special:Import to use the new backend. Make it support JSON Dumps.


 * Target 5 (2 Weeks):
 * More code cleanup. More documentation writing.

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 - or even just a patch based workflow. I'll blog regularly about my progress, for documentation and flaunting :) 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 also contribute to PiTiVi, a Linux Video Editor. I maintain Busroutes.in, a open source, open data, crowd-sourced website for collecting/displaying local transportation information. 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've also worked on forward porting a performance patch for mediawiki(see 5303).

Any other info
If there's other relevant information -- UI mockups, references to related projects, a link to your proof of concept code, whatever. There are no specific requirements, but we love to see people who love what they're doing. Show us you're excited about this project and have an interest in the background and are considering how best to make your idea work.