Undergraduate Capstone Open Source Projects

Archive for the ‘Thunderbird’ Category

Thunderbird Update

Posted by wxwoo on 2010/03/10

Some quick updates from the Thunderbird team for weeks starting February 22nd and March 1st. (This is a point-form summary; see https://wiki.mozilla.org/Thunderbird/Students/StatusUpdates for each week’s full report.)

Tim (Bug: Windows 7 overlay icons – https://bugzilla.mozilla.org/show_bug.cgi?id=515907)

  • Wrote a short guide on Mozilla’s patch development process
  • Corrected a few issues related to incorrect usage of data types in his XPCOM component
  • Submitted a patch
  • Investigated test frameworks appropriate for testing his Windows 7 overlay icons implementation – this is tricky because Mozilla has A LOT of test frameworks. It turns out that Tim needed to do mochitests and although these are tests for Thunderbird, they have to be run from Firefox.
  • Plans to submit test cases this week (week of March 8th)

Kefu Zhao (Bug: automatically determine “From” address for “reply to list” – https://bugzilla.mozilla.org/show_bug.cgi?id=461669)

  • Working on retrieving the raw headers of an e-mail (still in-progress)

Wei Xian Woo (Bug: improved session storage and restoration in Thunderbird – https://bugzilla.mozilla.org/show_bug.cgi?id=408338)

  • Received feedback about my first patch from Blake and made the suggested changes
  • Improved some test cases and added a new one
  • Made additional changes to the session store manager to make intentions more clear
  • Submitted revised first patch for review
  • Brainstormed ideas for implementing support for persisting session state for other window types (right now, we only persist session state for the main Thunderbird windows aka the 3-pane windows).

Everyone else

Posted in Status, Thunderbird | Leave a Comment »

Evan’s Midterm Report

Posted by evanstratford on 2010/03/02

For many of the same reasons raised below, I haven’t been as productive as I had expected; in particular, this has largely resulted from the intersection between front-heavy term workloads and the various bureaucratic demands of graduation/full-time employment.

That said, I finally posted my vCard import patch for review this past week, along with some modifications as suggested by Standard8. This patch involves roughly 800 lines of code in the middle of the complex multi-threaded wonder that is Address Book; it even comes complete with xpcshell-based tests (which pass!) and should hopefully be ready for commit some time within the next two weeks or so.

I’m setting these goals for the next 5-6 weeks:

  • implement vCard export;
  • submit patches for review on at least four separate Address Book bugs (including vCard import/export);
  • commit at least one patch;
  • be available at least 10 hours a week on #maildev and #education;
  • catch up on my weekly status updates.

The first goal is a natural continuation of vCard import; with import/export functionality, I imagine most users will find their vCard-related needs met. The next two goals are meant as a very rough quantity requirement – although quantity and quality do not necessarily correlate, I’d like to have enough of the former to justify four months of part-time development. The final two goals are aimed at personal development; I could definitely benefit from further improvement in communication/collaboration.

Posted in Status, Thunderbird | 1 Comment »

Blake’s Midterm Report

Posted by bwinton on 2010/03/02

As contrasted with some of my students, I’m fairly happy with the amount of coding work they’ve gotten done. I think this is largely because I had more realistic expectations coming in to the course. After 15 years in industry I’ve come to realize that there’s a whole lot more to fixing bugs than fixing the bug, and the other stuff is what takes the time. Stuff like figuring out what’s going wrong, and how the code fits together, writing tests, getting it reviewed, fixing the things the reviewer points out, getting it committed, and (hopefully) writing up their weekly status reports.

So, yeah, most of the students seem on track to get their bugs committed by the end of the term, and I’m pretty happy with that. The only thing I could ask for is more communication. Even though I’ve been getting more email and seeing more questions in IRC recently, I would also like to see some blog posts so that other people can take advantage of the things the current crop of students are learning.

Posted in Status, Thunderbird | Tagged: | 1 Comment »

Marcel’s Midterm Report

Posted by marcelguzman on 2010/03/01

I have to say I’m disappointed with my progress so far – not so much in terms of understanding the code and bug fixing, but more in terms of turning my lines working code into accepted patches (and all the communication and time management that goes along with that).

Toronto was a great opportunity to learn about the deep inner workings of the Mozilla codebase (an opportunity which, considering the size and scope of the code, was invaluable). I’ve been able to build on the understanding gained there to learn about the areas of code that I’ll be working in. The only difficulty I have is when I’m stepping through huge uncommented functions that call deep into Mozilla’s low-level libraries, but IRC is a great resource for things like that, thankfully!

As mentioned, I’ve got a decent amount of code written (2 fully written patches, feature-wise, and finishing off a third). Mozilla’s strict (and excellent :)) quality standards prevent me from actually getting these patches in the source tree, however, as I also need to write tests, which means a significant time investment online reading about how these tests work and talking to people on IRC about how they work. I haven’t had the opportunity to talk about this yet as I’ve mostly been working on transit, offline.

I’m going to focus on getting these patches in the source tree ASAP. Ad-hoc work “when I feel like it” is obviously not working, especially since I’ve been bad with status reports and blogging. I’m going to have to treat this more like a job and less like a hobby/personal project whose sole purpose is fun/learning. Of course, I’m still going to have fun and learn a lot, but I need to get my act together and commit to my responsibilities as well. I’m pretty confident I can turn this around and be highly productive by the end of the term, and beyond, as I also really enjoy working with Thunderbird!

Posted in Status, Thunderbird | 1 Comment »

Midway Update – Wei Xian Woo (Thunderbird)

Posted by wxwoo on 2010/02/28

I am not proud to say this, but my performance on Thunderbird could have been better.

Am I behind?

  • Yes, I am at least three weeks behind the schedule I set for myself. I would have liked to submit my first patch by the end of January, but I ended up doing that only in the third week of February.
  • At the start of the term, I broke down the feature I was responsible for implementing into reasonably sized pieces and estimated that each piece will take approximately 1-2 days to implement. Even at this point, I feel that those estimations were fair and achievable given what I knew about my schedule at the time.

Why am I behind?

  • The term turned out to be a lot busier than I originally anticipated – for school (assignments + a research assistantship) and preparation for external exams
  • Figuring out how certain pieces of Thunderbird code interact with each other and where certain things are took longer than expected. For example, where/when is the first Thunderbird main window created? (No, searching for “startup” and other related keywords did not help.)
  • I spent almost two full weeks understanding the various types of Mozilla unit tests and identifying one that can do what I need. Mozilla has 7-8 types of these, out of which only 3-4 of them are currently used in Thunderbird. This time I felt was badly spent because asking Blake (which I had to do anyways) would have gotten me an answer much quicker.

What have I learnt up to this point?

  • How Mozilla apps (in particular, Thunderbird) work. The whole idea of using JavaScript to implement a feature like session restoration and storage is pretty fascinating.
  • Writing tests – despite having five co-op work terms of development experience, I definitely learnt some good stuff about testing here.

So, how’s the remainder of the term going to look like for me?

  • Within the next 2-3 weeks, I hope to finish up the remaining pieces of the feature. In fact, my revised 1st patch is almost ready as I write this and should be ready for submission sometime today.
  • I hope to be able to work on at least one other bug for the final month, which will hopefully take less time to tackle now that I have better understanding of how things work in Thunderbird.

Posted in Thunderbird | 1 Comment »

Thunderbird Status Update

Posted by lindausonhazell on 2010/02/19

Progress is a bit slow in the Thunderbird camp this week. Zach is re-submitting his last patch after making the appropriate refinements and MozMill tests.Wei Xian Woo submitted his first patch and tests this week. He has already begun working on his second bug…

View this week’s full status update here

Posted in Status, Thunderbird | Tagged: , , , | Leave a Comment »

Thunderbird Status Update

Posted by mille449 on 2010/01/30

For the full update, check out our project blog.

Everyone is starting to feel the pressure of their classes this semester, but despite this several of us are close to submitting our first patch.  A common theme is difficulty understanding how to work with the Mozilla platform, but learning how to work with someone else’s code is good experience for us all.

Posted in Thunderbird | Leave a Comment »

Team Thunderbird says hello

Posted by zgchurch on 2010/01/22

We’re all working on our bugs at Team Thunderbird. Tim’s working on better integration with the Windows 7 taskbar. Kefu is getting the ‘From’ address to be automatically determined when replying to a list. Lin is making sure the correct menu options are enabled at the right times. I’ve also had to deal with this a bit while adding a “Reopen last tab” button. Evan is working on importing vCards for Address Book. Marcel is working on some display issues with the activity monitor. Wei Xian is working on being able to restore sessions.

Wei Xian also made a Python script at the code sprint that helps Thunderbird developers on Windows generate a Visual Studio project.

Posted in Status, Thunderbird | 1 Comment »

Fingers of Fury

Posted by evanstratford on 2010/01/17

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!

Posted in Sprint, Thunderbird | 1 Comment »

Marcel Guzman

Posted by marcelguzman on 2010/01/13

Hi all! My name is Marcel Guzman and I’m a 4th year student at SFU. My interests lie in online development of all kinds (from low-level networking to high-level web apps and everything in between!). I also enjoy esoteric languages as well as operating systems.

This semester, I’ll be working on Thunderbird. I’m very interested in Mozilla projects as well as learning how to code desktop apps so I think it will be a great fit for me. I’ve previously worked as a co-op with Electronic Arts (Sports Online) and SAP (Crystal Reports Server), both of which were primarily C++ jobs. When I’m not coding, I enjoy board games, skiing, and as pictured, nomming delicious cake.

Looking forward to the upcoming sprint

Posted in Bios, Thunderbird | Leave a Comment »