Presentations and Documents and Research, Oh My! (cross-post)
18 January, 2013 § Leave a Comment
One of the MSU Capstone team members, Brandon Waterloo, wrote up a nice blog post giving an update on the progress of their work implementing some multitouch gestures for desktop Firefox.
The latter half of the past week, as well as most of this week, consisted (will consist) primarily of working on our project plan document and our presentations. On the 23rd, we’ll be giving team status reports, talking about the status of our machines, our project plan document, etc. These will be short, only about five minutes.
Beginning on the 28th, the various capstone teams will begin presenting their project plans. This is mostly just a brief version of the project plan document. This will be about a fifteen minute presentation. I’m slightly concerned that we can’t stretch our material out to fifteen minutes, because our project is pretty simple to explain–touch gestures for Firefox on Mac OS X. There’s not a whole lot more to say, except to explain the specifics of what we’ll be doing.
Read the rest of the blog post at Brandon’s post, “Presentations and Documents and Research, Oh My!”

Left-to-right: Raymond Heldt (HeldtNotHelt), Brandon Waterloo (we11ington), Bill de Araujo (spartanfire)
A new semester, a new capstone project
11 January, 2013 § 3 Comments
This is the first week of a new semester at Michigan State University, and with that brings a new group of students who will be working on a senior capstone project with Mozilla.
This semester the students will be focusing on multitouch gestures within the browser. They’ll start out the semester by fixing a few good-first-bugs, then they’ll move on to adding some gestures to standalone image and video documents. The final step of the project will be to focus on improving our pinch-to-zoom for webpages in Firefox.
As the semester progresses, the students will be blogging their progress on their own blogs (I may crosspost them here from time to time):
Brandon Waterloo: http://brandonwaterloo.wordpress.com/
Raymond Heldt: http://heldtray.wordpress.com/
Bill de Araujo: http://spartanfire.wordpress.com/
Here’s to a great semester!
Firefox-team January reading group: Effective JavaScript
27 December, 2012 § Leave a Comment
About a month ago Margaret Leibovic had the idea to start a Firefox team reading group.
The idea is that every month we choose one book (or a set of articles/essays) to read, then get together to discuss it (while eating and/or drinking).
Topics include programming, engineering, design, etc. Basically anything that makes us better software developers.
For the month of January we settled on Effective JavaScript, written by Mozilla’s very own Dave Herman.
We’re planning on discussing the book on Friday, 25 January at 12pm PST.
Discussion points:
- Are there any points in the book that you strongly agree (or disagree) with?
- Was there anything that surprised you?
- Do you have any examples of times when you’ve used these strategies?
- Do you have any examples of bugs you’ve seen because these strategies weren’t used?
- What’s your new favorite JavaScript feature?
Anybody is welcome to join along and read the book with us. If someone wants to join the meeting discussion and doesn’t have access to our Vidyo video-conferencing software, send me a note and I’ll try my best to get you included in the discussion.
Mac OS X integration with Firefox
26 December, 2012 § 14 Comments
As I’ve been researching potential Spring 2013 capstone projects, I’ve been looking in to Firefox’ current OS X integration. This includes what parts need improving as well as are currently missing.
With the help of many people in the Mozilla community, I’ve received lots of feedback as to what could be improved. Below is the list of work needed that I have come across.
[P1]
Accepting click events in the titlebar area
https://bugzilla.mozilla.org/show_bug.cgi?id=647216
https://bugzilla.mozilla.org/show_bug.cgi?id=625989
Keychain support
Lion Scrollbars
Edge bounce and overscroll
Fullscreen mode improvements (Now that Lion fullscreen has been implemented, what is still needed here? - Jared)
Swipe/gesture support is buggy (bug 673675)
Dock Download Progress
[P2]
Lion resume support
Auto-fill from Address Book
Use the system provided spell checker
Text autocorrection
Built in word definition panels
Investigate potential changes needed if sandboxed
Dictation support
Integration with Services (control click text selection in any cocoa app for a Services menu)
[P3]
iCloud support (shared settings? document storage?)
Spotlight (Bookmarks and History)
Speech (control click text selection in any cocoa app for a Speech menu)
Airplay (mirror firefox to your tv)
Use system provided geolocation
[Untriaged]
Applescript support
Dragging content to and from Firefox to the OS/other applications within OS X (bug 591713)
Double-tap to zoom (bug 688990)
Look up gesture (bug 687026, depends on bug 301451)
Improve focus ring style for urlbar & search field (bug 689012)
Unfocused Firefox window needs dimmed text in tab titles and address bar (bug 688678)
View menu item stays highlighted after resubmitting POST-form and pressing Cancel (bug 688412)
[10.7] Character repeat on long button presses doesn't work (bug 686113)
[10.7] panels with titlebars not receiving mouse clicks (bug 677545)
[10.7] Hardware acceleration on: The corners at the bottom have no fade out effect / anti-aliasing (bug 675410)
(awaiting QA) [10.7] Firefox 5.0.1 running on Mac OS10.7 returns a Error Code 502 Proxy Error when browsing Web sites (bug 674868)
[10.7] Update Firefox Theme for Mac OS X 10.7 Lion (bug 667456)
[10.7] Filepicker directory is not remembered (bug 654842)
Lion Compatibility Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=636455
Source: UX team Mac OS integration list
Josh Aas proposed that the project focus on improving our multitouch/gesture support in Firefox. What gestures do you know of that could be improved/are missing?
I think multitouch/gesture support will be a good project is because the students should each be able to work on their own gestures, thus making the project parallelizable. As well the project is also not a binary success/failure (assuming the students are able to improve at least one gesture).
Tools & Processes for ensuring software quality at Mozilla
11 December, 2012 § 2 Comments
Last week I gave a talk at TechSmith about some of the tools & processes for ensuring software quality at Mozilla.
TechSmith develops multimedia software based around various screen capture uses. Some of their most popular software is Camtasia Studio and Snagit.
Like Mozilla, they use continuous integration, unit tests, manual testing, and code reviews to maintain software quality.
The talk was recorded and I hope to get a copy of the talk to upload here and share with others. In the meantime, I’ve included a link to the slides below:
Please let me know if I made any errors or omissions.
Status Update 9 of Reader Mode for desktop Firefox
3 December, 2012 § 12 Comments
This is the final week for the students working on the Reader Mode project for Firefox. The students will be presenting their final work on Friday to a panel of judges at Michigan State’s Design Day.
Reader mode now mostly works at prototype-level functionality. There is still some more work and lots more testing to do.
The team has asked for help with testing on Windows & Linux, as well as switching tabs. When a tab is switched to, the document is parsed for its readability score. We want to make sure that we don’t regress tab switching times as well as increase memory usage by the introduction of the feature.
I pushed their current patch to our Try servers so you can help test. When it is finished building, they should be available to download and play with here*. After downloading the build, go to about:config and set reader.enabled=true.
*Update: I have heard from at least one person that the Windows build isn’t working correctly.
Without further ado, here is the team’s project overview video.
The team also is planning on tweaking the size of the toolbar button so it doesn’t stretch the URL bar vertically. This is a subtle bug that you can see in the team’s project video.
Further work for Reader Mode will include moving the in-page adjustments to a toolbar at the top of the page, as well as adding a Sepia color mode.
The team updated the current work-in-progress patch on the meta bug.
Force Multiplying
28 November, 2012 § 1 Comment
Trying to get the most out of yourself and your coworkers can be a challenge when working on a large project. Through my time I’ve learned several habits that I feel help to get the most out of myself and the people around me.
1. Prioritize reviewing other people’s code over writing your own code
When other people have requested feedback or review of their work, getting a quick response to them can keep them moving at a fast pace. Whenever I’ve had my own review requests linger, I’ve picked up other work to do in the meantime. These context switches are very expensive, and it can make coming back to the original work harder. The quicker the turn-around-time, the better.
2. Prefer asynchronous communication channels over synchronous ones
While working I stay logged in to our IRC chat room. The chat room keeps me connected to the other people within the project and allows me to ask quick questions of others. In my experience I often get pretty quick responses when asking questions in the chat room, but each question there means that someone else may have to stop what they’re doing to try to get a response.
If at all possible it is better to do a little more research (which will pay off more in the long run) or send an email to the person. Emails are perfect because of their asynchronous nature. The email response can wait until the receiver has set aside time to respond to emails and finished most of their daily routine.
3. Let people who have specialties use their specialties
If I come across a bug and already know who would most likely be the one to fix it, I’ll try to let them know about it. Chances are that they can fix the bug faster than anyone else on the team. This practice can help the team move faster, but it is also important to make sure that this person doesn’t become the only person with knowledge in this area. Code reviews and blog posts can really help to spread the knowledge and reduce the negatives of information silos.
4. Leave email reading until the end of the day, but don’t let email responses linger
One of the best tips that I have learned from others is to set aside email reading during the day. Responding to emails as they arrive turns email from an asynchronous channel to a synchronous one, and the amount of incoming mail in a day can be overwhelming. I particularly like to leave email reading until the end of the day, as the amount of context switches for each email can be mentally tiring and make it hard to continue working afterwards.
Update: 5. Help mentor others
I’m not sure how I forgot this in my first draft, but mentoring others is probably the best way to help increase the output of yourself and the ones around you. Mentoring provides an opportunity to refine your skills and learn details that might be overlooked if not seen from a different perspective. While mentoring, the mentee gains valuable knowledge and is set on a path towards self-sustained contributions. This person can then in turn help mentor others, spreading the knowledge to even more people.
I find that these practices help me and the people around me work faster. Do you know of any good tips that I may not know about?

