User:Peter17/GSoC2010

Identity

 * Name: Peter Potrowl
 * Email: peter017 AT gmail DOT com
 * Project title: Reasonably efficient interwiki template transclusion

Contact/working info

 * Timezone: GMT+8 (China) until the end of June. Then, GMT+1 (France)
 * Typical working/geeking hours: 8:00 – 11:30 & 13:30 – 23:30
 * IRC or IM networks/handle(s): peter017 AT gmail DOT com ; usually on Freenode (peter17)

Project summary
This project is related to bug 1126, bug 4547 and bug 9890 on MediaWiki's bugzilla.

The aim is to allow MediaWiki users to insert (transclude) templates from a wiki to another on WikiMedia Foundation (WMF) wikis (Wikipedia, Wikimedia Commons, etc.). This is an essential feature since nowadays, only images (and not wikitext, datatables, lists)... can be shared between the projects. Transcluding templates across wikis would allow faster and simpler updates of contents that are used on several wikis.

Such a functionality has been requested since 2004 (!). A first implementation of a solution has been added to MediaWiki. However, it has *not* been (and will not be) enabled on WMF wikis because of performance problems.

Indeed, the current implementation includes the content of the template using an arbitrary cache, independent from the caching system of MediaWiki. A clean solution, using the database to store the links to the templates, is necessary, so that the software can update the cached content only when necessary (when the template or one of its elements is modified).

A quite similar system is currently used for including images from a central repository (Wikimedia Commons) and follow the cross-wiki usage of those images. Wikimedia bugzilla's bug 9890 (opened in 2007) suggests a solution to this problem, but has not been worked out yet. It needs "a substantial amount of code" and someone doing it.

Interest
Right now, each wiki project of WMF is creating its own infoboxes to store the same kind of information (about cities, movies, molecules, animals...). This requires quite a lot of works, especially on small wikis with few contributors. Moreover, when an information has to be updated (let's say the population of a city, for instance), the change has to be made on every wiki, which is a big loss in terms of efficiency.

Activating cross-wiki template inclusion would allow to store infoboxes on Wikimedia Commons (as it is currently done for images) and include each of them in all the wikis that need them. If some data has to be updated, the change is to be made only once, which is far more efficient and guarantees that the data is up-to-date even on very small wikis. Of course, those templates would be translated in all those languages, as it is done for.

This could also be applied to a lot of data tables, such as this one, weather data, climate and population charts, license templates and a lot of other. A possible use for listing interwiki links has also been mentioned.

About you
Hello! I am a 22-year-old French student. Currently, I am carrying out an 8-month internship as a researcher in a nanotechnologies institute in Shanghai, China.

In my free time, I practice photography, genealogy, social actions and, of course, a lot of computer-related stuff (and only free software)! I also like traveling (in France and Europe) and living abroad (2 months in Texas, 8 months in China). I am interested in sciences, electronics and nanotechnologies.

Required deliverables
A source code validated by MediaWiki developers that would allow, after intensive testing, to close bugs 1126, 4547 and 9890.

Then, I'll have to write the documentation so that users can use it (but basically, it should be absolutely transparent to the user, as it is for the images).

If time permits
I would like to see the feature enabled on Wikipedia and its sister projects.

Project schedule

 * June : careful study of the problem and its implications and precise suggestion of a solution to the mentor and the developpers
 * July : actually writing of the code and testing it my own computer
 * August : intensive testing on http://test.wikipedia.org and debugging

Participation
During the participation, I would like to interact a lot with the developers in order to get some advice from them and produce a code that will integrate well with the existing software. I've already looked several times inside the source code and I think this is necessary to maintain the code clear enough.

Concerning the publication of the code, I think the most simple for everybody would be that I work on my own branch hosted on MediaWiki's SVN. Thus, it would be possible for my mentor and all the developers to see the produced code any time they want.

Past open source experience
I have been contributing to Wikipedia since May 2005 and made 12,000+ edits on the French language Wikipedia. I also contribute on Commons and translateWiki (1200+ strings translated so far on this project). I am responsible for the translation of 10 .po files for the French translation of KDE (see apps and docs).

I have been studying computer sciences for about 10 years and learned a lot of programming languages such as C, Caml, Java and Ruby. I have also begun programming in PHP in 2003 and Object-Oriented PHP in 2007 and I'm used to MySQL and SQLite databases (but not really to performance issues). The personal website I developed (lesitemai.free.fr, ~100 articles, 1600 photos) uses those technologies.

Last summer, I worked for 3 months as a software developer at the European Aeronautic Defense and Space Company. For this task, was programming in Java EE in Eclipse.

Although I am fond of free software, I have never contributing at a big scale to a development project. I think it needs a lot of energy at the beginning to get to know the code and become part of a development team. That's why GSoC would be a great opportunity for me to start collaborating to this software.