WordPress GSoC: Trac Social Bug Tracking Development

First of the writings about GSoC 2008 is my application to WordPress, called “Trac Social Bug Tracking Development”, that would have been mentored by Lloyd Budd if it had been selected.

== Personal Details ==

* Name: Christian Lopez Espinola
* Email: Not published
* GTalk ID: Not published
I’ll be idling at #wordpress-dev on Freenode too.

== Project Proposal ==
I want to work on the Trac social improvements for the WP community proposal at your Ideas page.
I have done some research about how karma works in another systems. I found this article terribly useful: http://eskar.dk/andreas/blog/?p=154

I want to describe here some results about my investigation in how karma works on some systems:

* Mantis: The different actions increases user’s karma. The admins must rank the actions, and a number of points are associated to the actions, it involves human interaction. See http://bugs.digium.com/karma_view_transactions.php?id=46 as an example.

* Launchpad: The different actions increases user’s karma as Mantis, but it depends also on when the action took place. This encourages newer users/devs to catch up older and inactive ones. Described at https://help.launchpad.net/KarmaCalculation?highlight=(karma)

* GNOME Bugzilla: It gives a score based on reports, bugs reported and bugs closed. From the analyzed systems, it’ s the one that looks at less variables, and it’s published the formula for documenting it:
log_10(1 + #comments) + log_2(1 + #bugs_closed) + log_2(1 + #bugs_reported)
On of the advantages of this one is that it gets progressively harder to gain more points as you go along. So it encourages newer users/devs, because they would win karma quickly at their first steps.

It seems that the latter use cron tasks or similar to update daily the points given, but Mantis seems that this is done by hand. I should investigate deeply on this if required looking at the source code of Mantis and/or Bugzilla. I don’t expect that Launchpad will be released with an open source license soon, that’s a pity.

My conclusions with this first research are that
– manual work should be avoided, but it should be allowed that the members of a group (think about ‘core devs’) can increase by hand the user’s karma, with a +/- system like Slashdot and other social websites.
– Taking care about ‘when’ the task is done is a good thing, because shows the current involvement in the community of an user.
– the deliverable should include a script that updates daily the databases, but maybe a svn hook too, along with a plugin for trac.

About the technical side of the project, I have no experience with trac plugin development, but I’ve seen the API linked at http://trac.edgewall.org/wiki/TracDev/PluginDevelopment
and read about the customization of tickets fields before, and I’m capable of doing the work. There are a lot of open source plugins where I can look at if I have any problem, and I know that the Trac community is very active at their IRC channel.

== Schedule of Deliverables ==
According to http://code.google.com/opensource/gsoc/2008/faqs.html#0.1_timeline:

– Community Bonding Period:
I’ll be discussing with the WP community about the requirements of the project. I think that the conclusions that I mentioned in the project proposal section are great requirements of how this plugin should work, but I’m sure that I have missed a lot of variables because I don’t know very well the WP community, so I’ll be glad of getting feedback and being involved in the community.
– From May 26 to June 7, I’ll start doing a simple example Trac plugin, that will show me how I should use templates for the trac web pages, and how to listen to ticket and wiki pages events from the trac public API.
– From June 7 to June 30, it’s my exams period at University, so I’ll be less active in the development. I’ll design the database tables involved on the karma system and I’ll try to do some work on the initial templates for the user’s karma summary web page.
– From July 1 to July 14, I’ll work on the karma algorithm (that involves a cron job that runs a python script), and I’ll do the first prototype of the voting system (if finally required). I will work on creating an egg file, so mentor (and anyone else) can deploy it easily, so he (they) can test the system and do the mid-term evaluation accordingly.
* DELIVERABLES: Python script that updates the karma 0.5, trac plugin 0.5.
– From July 15 to July 31, listening to the mentor (and community’s feedback), I’ll work on improving the karma algorithm (if needed), and fixing bugs. SVN logs can be read through commits hooks or in the cron job, so if it’s needed, I’ll work on the SVN hook.
– From August 1 to August 10, I’ll be integrating the score per action configuration into the trac webadmin interface. I think that this can help in changing the scores per task in the future, and help other communities that use trac to customize for their needs.
– From August 10 to August 18, if all went fine, the project is finished, so I’ll try to begin looking at issues databases of Trac and WordPress, and I’ll start helping in bugs resolution in the core of this project(s), increasing my own karma.
* DELIVERABLES: Python Script 1.0, trac plugin 1.0, SVN hook 1.0 (if needed)

== Open Source Development Experience ==
I have done several patches to OpenLayers, a mapping API project developed on Javascript.
On last summer, I participated on SoC under the ArgoUML umbrella, project in which I have worked before. Since SoC 2007 finished, I’m a core developer and I have been contributing on fixing bugs and improving/maintaining my work, as long as developing some new features.

Relating to python, I have worked in some opensource games development and contributed to a TurboGears-based opensource website called Sweetter (sweetter.net) that it’s based on the Twitter ideas, but with some new functionality, like TODO tasks and karma.
I have been developing some personal projects in python too, but not large projects.

Relating to karma, I’m a ‘My name is Earl’ fan.

More about my opensource activities at http://www.ohloh.net/accounts/670

== Work/Internship Experience ==
I have web development experience, but excluding some sweetter.net work, none of it with python. Anyway, it shows that I can write standard XHTML, CSS and Javascript (functional-oriented or OOP).
I have web security knowledge, and I’ve given some conferences about this and other fields.

See my past jobs at http://www.linkedin.com/in/penyaskito

== Academic Experience ==
I plan to graduate on September 2008 on Computer Science in University of Seville, Spain. I have deep knowledge about web development, web standards, design patterns, task management, programming (in several languages: very proficient in C#, Java, Javascript; proficient in C, Python and PHP -I want to improve this, so I’m here applying-),… I learn quick.

== Why WordPress ==
Because I want to improve my PHP and Python skills, and this is a perfect way of doing it. I love wordpress (I blog at penyaskitodice.wordpress.com), and I love trac, so this is the perfect project for me. It involves both of them!
I love communities, specially opensource communities (my contributions to the ProducingOSS book spanish translation shows it: http://producingoss.com/es/), and this karma project can increase the motivation of opensource contributors.

== Why me ==
This section is not on the template, but I feel that I should add it.
– I know how to work on group, and I listen to the community desires.
– I don’t need a lot of mentoring (I will only need it in the karma algorithm feedback), so my mentor can choose another student too, making more slots available to the WP project.
– I love opensource.
– I’m a trac user and a wordpress user.
– I learn quickly, and I always want to learn more.
– I’m a geek.

I hope you like my application. I’m ready for getting involved, and I want to hear your feedback!

Thanks for your time.

If I would have to rewrite my application, I’d change some things, but I want to keep it untouched because this is what it was evaluated.

Looking at the comments that I received, it seems that the application liked to my possible mentor, but I was already selected for ArgoUML, so we won’t know ever if I would have been selected for this project.

WordPress 2.5

Ya está WordPress 2.5 en los blogs de wordpress.com.
Curiosamente he vivido en directo la migración, puesto que me encontrado un desorden de CSS en el panel de administración hace unos segundos, aunque ahora ya escribo con el nuevo de WP 2.5

Nieve en wordpress.com

¡¡¡Volvemos a la web 1.0!!! 😛

Podemos poner nieve en nuestros blogs en wordpress.com. Para ello, nos vamos en el Dashboard a Presentation, Extras, y marcamos Show snow on my blog.

Sólo disponible hasta el 2 de enero 🙂

¡¡¡Feliz navidad!!!