KDE <3 GSoC (or how to handle a big org by crowd sourcing)

I finally got around to writing the GSoC wrap-up for the dot with a short intro to what all our students achieved during this summer. 37 successful projects out of 38 is awesome. It was great to work with this year’s mentors and students alike. Thanks to every one of them for making the admin team’s life as easy as it gets.

I think our new selection process had the biggest impact on this year’s great results (besides a lot of very awesome students and dedicated mentors of course). For those not familiar with it: In previous years we had one big  IRC meeting with all KDE mentors and a few more people to select the best projects and students for KDE out of over 200 proposals. As GSoC slots are very limited and everyone wanted to get a few for their sub-project this was quite chaotic and not always fair especially to smaller sub-projects that didn’t have the power to make themselves heard in those meetings. But given the time constraints and size of KDE this was what we had to deal with.

Last year bigger sub-projects like KOffice and Amarok got a fixed amount of slots and were asked to select their students themselves.  This improved things a lot for the big projects as they got the projects they really needed and wanted without other sub-projects messing with the selection. But the smaller ones were probably even worse off than in previous years.

This year Jeff, Leo, Ian and I decided to change this and make it better for everyone. Our goal was to make it fair for all involved and at the same time give more power to the sub-projects in selecting their students because in the end only they really know what they want and need. No use in me deciding if KDE Games needs someone working on KGolf more than someone working on KPatience. Oh and of course we wanted to get rid of that hated hour-long IRC meeting.

So we started a big spreadsheet on Google Docs with a sheet for every sub-project as well as one for proposals which don’t fit in any of the sub-projects. Then we sent an invite to our mentor mailinglist and asked all mentors to add the proposals for their sub-project with a possible mentor and backup mentor as well as if the student already got in contact with our community somehow to work on improving the proposal. Then we asked them to rank their proposals, why they think this particular proposal is important for KDE as a whole and which projects they definitely need and which ones they would rather not have. Armed with this huge spreadsheet and some keeping in mind of the proposals no-one was fighting for because they didn’t belong to any sub-project the admin team sat down and created a list of the students KDE would really love to have. We ended up with a list of 60 students or so. Everyone was happy – no sub-project left behind. Everyone got the projects most important to them and no-one was going away with no student. We knew we weren’t going to get them all and we already had a few students we knew we would have to dismiss. But since they were on the maybe-list according to the previous ranking anyway that was ok. Then we got the first number from Google. We would likely get 42 slots. Ok. That meant all our maybes had to go. Tough but doable. Then the second round of slot allocations came. We got down to 35. Outsch! That would mean quite a few of our we-really-want-this projects would need to be cut. We had an emergency meeting with a few people to cut even more without having to let a sub-project go without any student at all but it was pretty much impossible. Thankfully Leslie is awesome and we got 38 slots in the end which meant we could give at least one slot to every sub-project that requested one and everyone got the projects most important to them (which turned out to also be the ones most important to KDE as a whole btw).

This crowd sourcing approach was a lot fairer because it is basically impossible for every mentor to read over 200 proposals and select the most important ones. (Though huge props to those who did!) Everyone could concentrate on their part of the proposals and really make a good judgment on whether the project is good and if the student is actually able to do it or just a poser. And I think our success rate this year speaks for itself 🙂

Claudia bought tickets for Leo and me to the mentor summit last week and I’m really excited to finally put a mark on that big white spot on my personal travel map called America 😀

Now gearheads: Is there anything you think we can improve for GSoC next year? What did you like? What didn’t work so well? What do you want Leo and me to talk about at the mentor summit with all the other orgs?

Tune your Quassel!

If you would do a quick analysis on which programs I use the most you’d probably get Firefox, Quassel, Amarok and Kopete (in this order and Firefox being way ahead of everything else). Using those programs extensively of course leads to optimizing workflows.

Quassel is the fourth IRC client I use now. MIRC back on Windows. Then I learned to love Konversation when I switched to Linux. At some point I got tired of missing stuff when I was offline so I got shell access on a friends server to run irssi. It was ok and I customized the hell out of it to fit my needs pretty perfectly but I always missed Konversation’s nice GUI. I’m just not the type that really enjoys a CLI app (well except for listadmin maybe – but more about that another time). And then came Quassel, developed by a good friend of mine. I got a GUI and always-online in one app without hacks. Heaven! Well ok – close to heaven. There were a few usability issues that thankfully got fixed with help by Celeste. But one thing is still problematic: Quassel keeps all queries (private chats) in your default channel list. (Konversation had (has?) this nice feature that it closes inactive queries after a while and they are gone after a restart anyway so your channel list doesn’t grow too huge.)  With a huge list of queries (not hard to achieve if you’re using IRC for a while) you easily miss new messages in Quassel. Since I noticed a few people having this problem I’ll share how I tuned my Quassel to never miss queries again.

I have 2 chat lists. One with all my channels and queries and another one with only new stuff – that means unread channels and queries. It looks like this:

Quassel channel buffer

Once I read and leave the queries again they are removed from the news chat list – same for the channels. A nice side effect of this is that I can easily manage a lot of channels even on the small screen on my netbook without scrolling.

To set this up go to View -> Chat Lists -> Configure Chat Lists.

Settings for my All Buffers chat list:

Quassel All Buffers

Settings for my news chat list:

Quassel news chat list

How about a list of only new queries? Easy:

Quassel queries-only

How about a chat lists with only channels with highlights? There you go:

Quassel highlights-only

Enjoy and never get angry looks from friends again for missing a query 😉

How did you tune Quassel?

identi.ca got it right

Social media like Twitter, Facebook, digg and co. are all about the conversation. They are more fun and actually more useful when you have people to interact with. After all it’s called social media, right?

Now people have discussed why Twitter is better than identi.ca and the other way around. So Twitter obviously has the advantage of being comparatively big and mainstream at the moment. And this certainly has its advantages like being able to interact with a lot more people who so far have not (and maybe never will) discovered identi.ca.

Identi.ca on the other hand has the advantage of being Free Software and connecting a lot of Free Software people. However that is not the only and maybe not even the biggest advantage of it. No, actually its biggest advantage is enabling communication. Let me explain.

Twitter has @-replies. You use them to address people in the messages you send (like this: @foo I don’t agree with what you just said). Not too long ago Twitter decided to not show those @-replies your contacts send to other people in your main timeline but only when you visit their pages. So when one of the people I follow addresses someone else but me I will generally not see this. There are a few good reasons for Twitter to do this which I will not go into right now. However the problem with this is that you are missing big parts of very interesting message exchanges. The even bigger problem is however that it is close to impossible to find the @-replies someone got. Why is this a problem? Say someone asks his Twitter followers how they like a movie that just came out to decide if it is worth going to the cinema or not. You are about to go as well and would like to read what people answer him? Well tough luck. You’ll need to jump trough hoops and use the twitter search to search for his nickname and will probably get a lot of useless stuff there mixed in the useful things. Identi.ca on the other hand gives a tab to view all replies a user received so you can easily see what people replied to an interesting question or comment. Identi.ca goes even further. You get a “show in context”-link that tries to thread the whole conversation around a certain topic. It is pretty awesome and accurate. You can see who replied what to whom. Check it out!

One feature Twitter is lacking completely is groups. They are addressed with !groupname. Groups are an awesome way to communicate with a larger group of people you do not know but share a common interest with. There is no good way in Twitter to do this (no, hashtags don’t count). Groups can for example be used to make announcements or to get feedback from people also interested in topic X. They are probably the most powerful microblogging mechanism out there because they easily enable communication in large groups without much hassle. You simply join the group and then put !groupname in the message whenever you have something to share with the group. On Twitter (unless you are one of those people followed by a lot of people) your best chance of getting an important message read by a lot of people is to have it reposted (retweeted) by one of the influential people who are followed by a huge crowd. And then you still can’t be sure to reach the people you actually want to reach. One could say identi.ca’s groups make this whole process more democratic.

Summary: Twitter is a simple tool and being simple is a big part of the things that made it popular and successful. It however encourages communication from one to a few selected people who are following you. Identi.ca on the other hand encourages communication between a lot of people who don’t necessarily need to follow each other and thereby empowers people if they choose to use it that way. This makes it slightly more complicated for someone who starts using it though. So the question is: How does one explain groups in an easy and comprehensible way?

(In case you have no idea what this is all about check out my Social Media Guide For Free Software Projects for an introduction.)

it’s all clear now

We’re happy to release the first beta of Amarok 2.2. It comes with many goodies like playlist sorting, UMS device support, the ability to customize the program layout to your liking and much more. For details please read the release announcement and this nice review.

Enjoy rocking 🙂

Oh and don’t forget to send feedback, bug reports and patches (and maybe some cookies and hugs?) so we can get it in perfect shape for release in about a month.

Paros, Greece