Tales of software craftsmanship

Tales of software craftsmanship

The importance of mentorship in Google Summer of Code

I’ve been asked by Lydia, the ultimate social media ninja of KDE and Amarok’s community manager to put together a brief post about my opinions on the importance of mentorship and organization in a student outreach program such as Google Summer of Code based on my experience as a GSoC student. I’ve been a GSoC student twice and a volunteer Summer of KDE student the year before that, so I hope I can provide some insight from a student’s point of view. The KDE GSoC admins&mentors team has done a terrific job so far, and I’m very satisfied with their performance. Thank you, GSoC admins&mentors!

I have tried to gather a list of situations where as a GSoC student I could greatly benefit from good mentorship:

  • Planning. While I surely did have a vision and a somewhat clear direction where I wanted to take my project, I wasn’t always sure about the details of the implementation, and specifically how and where to tie my stuff in with the existing codebase. My mentor helped me a lot with planning and design, and we shared a design document in Google Docs that was to be kept up to date for the duration of the GSoC program. I believe that while the strong motivation of a student pushes the project forward, the direction has to be overseen and frequently discussed with the mentor to make the student’s project useful for the organization and to avoid rookie mistakes when laying out the design.
  • Code review. When I started with GSoC I was very much a noob about Qt and I didn’t have a lot of coding experience. Regular code review by my mentor and the other team members was very important to improve the quality of my output. I believe that at least occasional code reviews in the first weeks of the GSoC program (unrelated to the final review before merging the branch) can straighten out important details before they become serious issues later on.
  • Team interaction. When I started with GSoC I didn’t know anybody in the Amarok team. I didn’t know anything about the social structure and most importantly, I didn’t know which team member I should poke about specific parts of the codebase. In those times it was very important for me to have someone (mentor, community manager) to ask questions such as “Who has knowledge about this bit of code? Can I make change X on code Y or would that make person Z angry?”. I did ask those questions pretty often.
  • Technical questions. The life of a GSoC student can be pretty intense, between coursework, exams and coding. For this reason, while my output was quite consistent, coding could happen at any time of the day. I’m very grateful that my mentor Nikolaj Hald Nielsen was almost always available to answer my questions, and when he wasn’t, there was a clearly appointed second-in-command I could go to. This is perhaps the most important entry in this list. Rules such as “the whole team will mentor you” or “ask in the IRC channel and someone will answer” just won’t do with first time students! I know I wasn’t very comfortable with asking just any question in IRC, especially if I felt that the answer could be something that “anybody ought to know”. Sometimes I just needed a confirmation to make sure I was doing the right thing.

To sum it up, I believe that KDE has a great admins&mentors team, and I can testify that also because of this doing GSoC for KDE was a very rewarding experience.

However, it has come to my attention (also during this year’s Google Code-in) that for the fairly small admins&mentors team a large scale student outreach program such as GSoC creates a huge workload.

KDE contributors are encouraged to help with the organization to make the recently announced GSoC 2011 the most successful GSoC ever: feel free to add your ideas to our GSoC 2011 ideas page, and if there’s an area of KDE you know well, why not be a mentor this year?

The KDE GSoC team is looking for good mentors with lots of cool ideas, and especially if you’re a former GSoC student and you’re not a student any more, you might be the perfect candidate to become a GSoC 2011 mentor. To apply as a mentor visit #kde-soc on Freenode.

Amarok 2.4 “Slipstream”

On behalf of the Amarok team I’m pleased to announce that Amarok 2.4 codename “Slipstream” has just been released.

This release finally brings some of the Google Summer of Code stuff we have been blogging about a few months ago, many new features, as well as many performance and usability improvements. We are especially proud of the new, completely rewritten and much more reliable collection scanner, and I’m personally very happy to be able to show/hide the menu bar again 🙂

Check out our release announcement to learn what we’ve been up to for the past few months.

 

What to do with an old Nokia N810?

Nitdroid Donut showing Planet KDE

Like quite a few KDE community members who attended Akademy 2008, I got a Nokia N810 internet tablet. Sadly, shortly after we got the devices we stopped receiving OS updates and the Maemo Diablo platform was basically abandoned in favor of a bigger better faster and quite different Maemo Fremantle, to be used on the N900 with the hope of eventually having a community supported port for the N810. Unfortunately, the Mer project, which aimed to bring as much Fremantle as possible to the N810, was cancelled back in 2009, leaving N810 owners with a nice piece of hardware and a dead software stack.

Don’t get me wrong: while the browser is still slow as molasses and the battery drains quite quickly when WiFi is on, Maemo Diablo works, but it’s not moving and in 2011 it’s not fun any more. Lately I’ve been using it just as a music player and rarely for quick note taking or Skype over WiFi.

So thanks to the efforts of the Nitdroid project, I installed an Android 1.6 Donut build on my N810, hoping to get something fun to tinker with. Even though Donut is old, it might still have been an improvement over Maemo Diablo. From what I’ve picked up, the Nitdroid project is focusing on the N900, and I can testify that Android on the N810 is unusably slow.

I have managed to open Planet KDE on my third attempt, the first two times stuff just crashed randomly:

As for MeeGo, a fellow Amarok developer says it’s slow even on the N900, so does it even make sense to try running it on the N810?

What are my options if I want a fun, fairly recent and at least a bit usable system on my N810?

I know people even managed to run KDE on it, but is it fast enough to be usable?

What do you use your N810 tablets for in 2011?