Sunday 18 March 2012

How I started to contribute...

Hi everyone. The ideal of sharing propagated by RMS and his fellows has fascinated me for more time than I could remember. I've been always concerned about both the technical and the philosophical side. Therefore, It's resoanable to suppose that I'm also a kind of intellectual property geek.

Moreover, I felt that I could do something different from the boring tasks that my university imposes to me. The knowledge itself is good and I'm very grateful for a lot of things that I've learned in the university. But there is too much effort to make we professional problem solvers, whereas nobody really cares about how to encourage us to search for problems ourselves. Long things made short, what the point to be the best problem solver if you can't even recognise one by yourself.

So as to find my "own" problems, I've decided to contribute with a "real world" thing since the early days of my computer engineering course. FLOSS projects were my first choice, but how I could get into one remained unclear to me for some time.

By the mid of 2010 I already had solid C/C++ skills and a basic QT knowledge. I have been studying C/C++ by myself for a long time. I really liked the way how C/C++ gives more power to the programmer in exchange for requiring more computer operation awareness. Besides that, I'm also really concerned about portability and transparency, so C/C++ with QT was the right choice for me.

More than once I remember catching myself imagining FLOSS contributors as some kind of programing semi-gods. That's probably why I took a long time to realize that I already could be helping directly.


Fortunately, last year an opportunity to make the difference appeared. I happened on something called Google Summer of Code(GSoC) and it was exactly what I had been looking for. A blog, that I can't remember now, provided the basic informantion about this amazing program and for my own luck there were three weeks before the beginning of the students application period. Then I decided to apply and to definitely learn the most I could about FLOSS related subjects.

To make things happen I choosed Amarok as the project to work with, since it was one of the softwares that I use most in my daily activities. For years I have been using it and I felt that I should have chosen a project that would encourage me to keep helping afterwards. By the way, I made the right choice or I wouldn't be contributing with Amarok since then.


In order to be accepted as a GSoC student I would need something more than my wish to help a specific software. So I promptly picked the project idea I liked most from KDE GSoC Ideas Page. Basically, the project goal was to integrate gpodder.net web service with Amarok podcasting functionalities.

I cloned amarok master codebase and explored the files related to the picked project idea. A lot of doubts appeared, so I got in contact with Bart Cerneels, the guy who would mentor that project idea, and I took the role of a curious child for a while. After a week of code exploration, the big picture got clearer and I was able to continue with my plans.

The next step was to write a good proposal. I remember to see Lydia Pintscher, who was the kde org admin in 2011, saying to someone that most students who tryed GSoC with KDE use to fail due to a bad written and rough proposal. With that in mind I made an effort to write something good, so as to cause good impression. As soon as the first draft got ready, I sent it to Bart. He pointed some errors and suggested things to improve.

Others amarok fellows helped too, like when Lydia Pintscher and Stefan Derkits also reviewed my proposal. Definitively I couldn't say that my proposal was done exclusively by myself. It wouldn't be as good if it weren't by others help.

As said in my previous posts, my proposal was accepted and I had gotten through last year GSoC. Thereby learning a lot about software development, Qt, C/C++, git and teamwork. But you're mistaken if you think that everything went smoothly. There were a lot of problems to make this whole experience as difficult as possible, but they were handleable. In addition to the intrinsic development difficulties there were also the necessity to conciliate the GSoC with my university duties. Unfortunately, Brazilians doesn't have summer vacations in the same period of a American student.

Finally, I'd like to advise everyone that feel that isn't ready to do something not to procrastinate it. Be more pragmatic and keep your mind open to new opportunities.

That's all ^^.

3 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. Congrats.

    Do you have any specific plans for KDE/Amarok in the future?

    ReplyDelete
  3. Thank you.

    Sure, despite gpodder stuff which is my main contribution, I've been wandering throughout Amarok code and plan to diversify my areas of contribution.

    I have already sent some patches and implemented some minor features for other parts of amarok also. The last contribution was finished yesterday and I hope that everybody enjoy full status synchronisation and some bug fixes for the gpodder service. Just need to correct some stuff suggested by other amarok guys before merging it with master ^^.

    Also, I'm trying to be more involved with the community. Both in the KDE/Amarok and in my country. Definitively, it's a must do for this year. Tomorrow, for instance, I'm going to give a talk with another guy who contributes with plasma in a FLOSS course that started this year in my university.

    Hope to encourage more people to contribute by telling them my particular opinion of all the aspects involved. And it's obvious that I'll take the opportunity to promote KDE and Amarok too ;}.

    ReplyDelete