It’s 2:30 pm on Sunday; a thick pallor persists over an unseasonably warm Toronto. For roughly 40 students from various Canadian and American universities, this marks the end of the UCOSP code sprint. Those of us working on Thunderbird have made progress on a number of bugs tagged with student-project:

  • Zach Church is tackling Thunderbird’s handling of recently closed tabs as reported here and here.
  • Tim Miller is working on better integration with Windows 7 as reported here and here.
  • Marcel Guzman is improving the Activity Manager as reported here and here, and is also adding a keyboard shortcut for switching between message and header panes as reported here.
  • Kefu Zhao is automatically inferring From: addresses for replies to mailing lists as reported here.
  • Lindauson Hazell is resolving a bug where message-related menu items are enabled in non-message-related tabs, as reported here.
  • Evan Stratford is adding support for vCard import/export in Address Book as reported here.
  • Wei Xian Woo is implementing session restore for Thunderbird as reported here.

Not a bad start at all! As we continue to make progress this week, more detailed updates will surface over on the Mozilla wiki. Some lessons from the weekend:

  • Thunderbird is massive, and the codebase can often feel like C written in C++: it’s peppered with gems like return codes and extra output parameters and pointers to C-style strings. Put briefly – this is not the code you saw in class. Deal with it.
  • It’s incredibly important to discard hubris in open-source development. Check your ego at the door; don’t be afraid to ask questions; understand that you will be wrong many times before you are right. On the other hand, IRC places hundreds of experts at your fingertips, and is therefore more powerful than almost any tool you could use.
  • Practical lessons: pbranchack, and MXR are your friends; ctags is also quite useful. If you don’t understand what to do, look at code that does something similar. If you still don’t understand what to do, ask. When using Mercurial, never forget: commit early, commit often.
  • Remember: have fun! As in any creative endeavour, passion keeps you going.

As a final note: I’d like to thank gvwilson for organizing the code sprint, which has proven to be an amazing opportunity to meet other talented and motivated developers. Additional shout-outs are due humph and bwinton for remaining diplomatic throughout the torrent of confused questions, and for providing helpful answers in return.

Happy hacking!