Almost 4 days ago Google announced list of 1125 fortunate students that will be developing open-source projects this summer and get paid for it. Luckily, I’m within this group - here’s my quick report and initial thoughts.
I’ll probably end up with “initial report and quick thoughts”. Nevertheless, if you don’t know what Google Summer of Code is, check out official program website or Wikipedia. In short, one may compare it to normal software development internship, except two differences: you work on real open-source projects and coding is done remotely from where you reside currently (probably home, in most cases). This has a few consequences.
First of all, your coding time is flexible. You can code in the morning, you can code after midnight. For US students this may not be such a big advantage, because they start summer holidays when GSoC starts (end of May). In Europe however, students end academic semester at least a month later. Yes, yes - you have to code during exam sessions, which is why flexible working time is so important.
Second of all, you get rich contact with leaders of open-source communities. If you have Linux box you probably use software from at least one third of them, if you’re a software developer, then from more than a half. This year there are 175 organizations involved in program (although I’ve counted 177 on official list - duplicates?). Generally they divide into two categories: umbrella orgs, like Python Software Foundation or XMPP Standards Foundation, and single-project orgs, like Wordpress and BZFlag.
All of this is done to reduce bus factor of valuable open-source projects. However, life shows1 that only a small percentage of participants stays in communities after GSoC, so probably it’s a subject for improvement.
GSoC evolution
In 2008, GSoC has it’s 4th edition. And it is getting bigger each year. In 2005 there were 416 accepted proposals, this year there are 1125. Basically at the end of this year, if everything goes as planned, Google will have given out around 15,000,000$ to students and orgs overall (during 4 years). I’ve prepared two charts to visualize this - one with stats about accepted proposals and the other one showing Google’s financial engagement. These should be floating somewhere around here. Generally “The Company” spends 5000$ per proposal (4500$ for student and 500$ for mentoring org), if it’s fully successful (AFAIK success rate of GSoC is around 90-95%). Apart from this they’ve probably spent lots of money on administrative part.
In comparison: GHOC is much smaller and Android Challange is a promotion event with $10 million for awards. I’m wondering when there will be similar contest for recently released Google App Engine…
Plug-in system for Gajim - my GSoC project
So much for GSoC itself. This section is devoted to project I’m going to code.
First of all a proof that I’ve been really chosen - I’m listed at last position on the list of projects accepted by XMPP Standards Foundation. I also attach small screenshot on how this looks in student’s panel, which may be considered a semi-proof
Basically to get a feeling what it is all about you can read abstract of my proposal. If you want to get more details, jump into my notes on Gajim’s wiki2. These are the effect of discussions with Gajim developer’s and my thoughts on architecture. I think we’ve been able to point out each element of system that we should keep in mind while desgining and coding. During my internship at IBM Polska I’ve played a little bit with Sametime Connect SDK. This let me start concept work right ahead (about one month before proposals submit deadline).
Generally the target is to get basic plug-ins API working (hopefully, also stable) at the end summer. It should let developers hook into Gajim’s data flow and modify GUI. What we keep in mind all the time are possible real-life plug-ins that we should be able to implement based on this API. In example: XMPP over BOSH, LaTeX formula renderer, server-side message archiving or OTR support for Gajim.
What’s done so far
One of Project Management principles is that if you want to measure your progress precisely you have to know where you started exactly. So here it goes.
During preparation to plug-in system coding I’ve embedded IPython shell in Gajim and it works pretty well (although there are a few issues to be solved
). It’s already in Gajim’s svn trunk and really accelerates learning source code structure. Asterix created DBUS interface for toggling it’s visibility, so it’s really usable out-of-the-box now. I’ve tuned my local version a little bit (see attached screenshot).
I’ve been able to duck punch GUI in a few places in a similar way it will be extended using plug-in system. Some proof-of-concept modifications were made to roster (static GUI) and roster context menus (dynamically generated GUI).
As a more useful proof-of-concept I’ve written “live” acronyms expander that works pretty nicely, so I already have code to put within plug-in API. I’ve also made maximum length notifier3 which I find pretty useful when using Twitter 4. I’ve made some trips around source code too, learning a few things from Asterix and Steve-e.
In short, plans for nearest future: determine places (exact lines) where we could add GUI extension points, design and write some basic API and basic plug-in manager to load modifications on start-up. After getting this running, I’ll get back to events handling system and work there on fundamentals to make this element extensible5.
We’ll probably update schedule on-line to make it reasonable. I think the key to success here is to keep in touch with mentor as much as possible.
XSF GSoC 2008 Community
Speaking of which, I think that I won’t have any mentor-student communication problems. The forementioned Asterix is Yann Leboulanger - my project mentor. He’s a kind of person that’s really opened for community and newcomers, and as Gajim’s lead developer keeps development on track. I also regularly talk with Steve-e about plug-in system and source code structure. And there’s lots of other helpful community members - you can check it out by joining Gajim conference room.
Apart from Gajim society, I’m also part of XSF GSoC 2008 community - it counts 6 students (3xPoland, Czech Republic, Russia, Turkey) and 5 mentors (2xUSA, Belgium, France, UK). I’ve put them all on Google Map (shown at the bottom) to visualize what are our geographical relations.
We have our own secret mailing-list and even more secret conference room
Generally the leaders here are Peter Saint-Andre and Kevin Smith. The latter one came up with a great idea to keep us inspired all the time during GSoC - each of us is going to get two classic books: “Getting things done” and “The Pragmatic Programmer”. We’ll also probably have a chance to put a few bullets in each others heads, in the name of “community bonding”, during MP FPP shooter session (title to be chosen). I’ll probably suck rock pretty badly but maybe gislan or senu will be able to defend our national pride
Seems likes it’s the end of initial report. I’ll post updates on work progress when something significant happens.
IMPORTANT NOTE: If you have any comments on plug-in system in Gajim, especially plug-in ideas and thoughts on architecture - mail me, Jabber me or leave a comment below. Any discussion’s appreciated.
-
I’ve seen some stats (at least I think so
) about this on GSoC discussion group, but I can’t find it know ;/ ↩ -
Version of my notes as of proposal submission day. ↩
-
After expanding defined length message textview changes color to my favourite warm orange ;) ↩
-
Another idea for plug-in is to do Twitter-helper similiar to twhirl (although generally limited to usage of XMPP interface). Maybe make it a mutliple-account, all-twit-like-apps-in-one plug-in. ↩
-
From current perspective it seems that it will require the greatest deal of work. ↩
4 comments
Follow-up comment rss or Leave a TrackbackWhat an informative blog post — even I learned a few things about GSoC history!
It’s great to see that you’re already so engaged with the Gajim project. Keep up the good work!
Gratz! :]
@stpeter: Thanks
I’m gathering some additional data to create another post like this one.
@Azrael: you’ll congratulate me when I finish the project
Sign: wdpad Hello!!! paxav and 9095fqznyfzznp and 9106 : Hi! I was surfing and found your blog post! nice! I just came across your blog and wanted to say that Ive really enjoyed it.
Leave A Reply