28 March 2008 - 23:22Why I Worked On Firefox

Perhaps being stressed out and tired and after having some drinks isn’t the best time to write blog posts, but this is something I’ve been thinking about over the last few days. And I suppose in other conditions, I definitely wouldn’t be as open about this as I probably will be. I’m not accustomed to talking about personal things in person and especially not blogs. I tend to focus on objective things that “gets things done.”

So why did I work on Firefox?

Maybe I like to help people. Maybe I just like making things better when I see a problem that I can fix. Maybe I just want the world to be a better place. Or maybe I just like to work long hours. I do all this even if I don’t get much out of it. I suppose good thing about Firefox is that it’s open source and anybody can contribute and there are many people to help.

I recently sent Gerv an after-summer-of-code update and only then realized how much I’ve worked on. How much I wanted to help those people have a better experience. How many problems I saw that I could fix.

Both the download manager and location bar were being changed for the better, but there was so much more work to be done. Just to list a few things, I’ve added better download manager functionality with cross session resumable downloads, auto-pause/resume on sleep/wake, auto-resume on browser restart/crash, various fixes for saving files and some download status bar work.

Additionally, there’s the redesigned download manager UI work with the full listing of downloads and the ability to do multi-word search against any text shown in the list, and providing a way to display download progress / speed / times consistently as well some localization support for plural forms.

And of course there’s the work to make the location bar awesome. I wasn’t happy with the location bar return seemingly random results, so I decided to make things better. I started with the adaptive learning, but along the way I added in multi-word searching across urls, titles, and tags as well as word boundary matching. I also pushed patches for emphasizing all matches and cleaning up the display to be more compact as well as correct for foreign characters. There are also performance fixes to make results come back faster and render with less work.

Unfortunately, there were costs in making things better for everyone else. I haven’t been concentrating on my coursework, and my assignments have been partially completed when I turned them in. I’ve been tired and feeling burned out.

Just last week, I easily spent over 100 hours on Firefox stuff for my 1-week spring break. I wasn’t catching up on my assignment that was due the week before. Why not? There are still many things that I feel should be fixed.

I suppose I finally couldn’t take the stress from keeping things in, so I talked / cried / discussed with my Ph.D. advisor about things. He has been very good to me even though I haven’t focused as much on my research as I should have. Especially that he’s paying for my research assistantship and my tuition waiver. So I suppose unofficially, all my work on the Download Manager and the AwesomeBar has been funded by my advisor. (Apparently the download manager, location bar, and download manager again are the top 3 favorite features of Firefox 3 at mozillalinks, so I hopefully his money didn’t go to too much waste.)

But just working long hours isn’t really that bad. And I never really minded before, so I guess there must be something else.

It might be related to the improportionate amount of effort that I put in and what comes out. For those who followed the adaptive learning work to make the location bar into AwesomeBar, you might have noticed the code was pretty much ready when I first wrote about it in my blog early November. It wasn’t until a quarter of a year later (and almost 20 versions of the patch — mostly unbitrotting) that the patch got the appropriate bits twiddled so that it was high enough on the priority list to be reviewed and make it into Firefox 3.

I don’t think I did anything wrong in the process. I followed the rules and even provided extensive testcases. Perhaps there’s an issue with the code / review / approval path? For some reason, it just seems strange to me that only after people have done all the work writing the code, creating testcases, and getting reviewed does a final approval decision say yes or no.

It might also be that I try to fix too many things at once. I tend to have 10-20 patches on my mercurial queue stack, and the bases keep changing as things eventually get reviewed and modified. Maybe I’m creating artificial work unbitrotting myself, but that needs to be done when certain patches are deemed to be more important and I need to pull it from one end of my stack to the other.. Conflicts galore.

I realize it’s time to ship and changes need to cut back, so the process will have more hoops to jump through. But maybe I wasn’t expecting so many.

I still have a number of patches ready that add some neat things to the AwesomeBar such as being able to restrict searches to history or bookmarks and forcing matches against the url/title (additionally, you can set it up to force your queries to match against the url by default or only search non-bookmarked items). There’s also showing keyword queries and searching for strings as well as ignoring the protocol (e.g., “h” doesn’t match Http). Of course there’s tweaks to the adaptive learning to make it even better. But I suppose those will likely get to Firefox Next.

But back to unexpected hoops and tightening of the review process.. Earlier today, I was trying to make it easier to write download manager *test* code by adding a notification, and it was a very simple change to the download manager code. I simplified and cleaned up one of the testcases, but apparently it’s not good enough to review without at least 10 more testcases.

Also, I was trying to add in support for multiple-selection in the download manager so you can easily select multiple downloads to delete, pause/resume, etc. I even had a testcase locally that makes sure only selected items were deleted, but apparently the minimum number of things to test would be at least 20 more testcases.

But it’s getting late, and I suppose I’m feeling better already.. a little. Perhaps enough to even stick in an emotion ;) . Maybe I’ll feel good enough by the morning to finally post about the new awesomeness of the AwesomeBar for Beta 5.. definitely with more pictures too. :)

9 Comments | Tags: Mozilla, UIUC

10 June 2007 - 14:40End of HOPL III

The History of Programming Languages conference is pretty neat because programming languages designers describe how they developed the language and reflect on how it has progressed. There have only been three of these conferences with the first being in 1978, so it was nice that I was able to attend and listen to all these important people.

Just last semester at UIUC, I was attending a dynamic language virtual machine seminar where we went through quite a few Self papers - all of them had David Ungar in the author list. And it turns out the Ungar was around to give a presentation and ask some questions at the panel at the end of the conference.

Panel Discussion at HOPL III
David Ungar asking questions for Larry Wall (far right, Perl guy) and Olin Shivers (middle, Scheme) about their goals for making programming languages

No Comments | Tags: Conference, UIUC

9 June 2007 - 23:53In San Diego for FCRC

I’m taking a quick “vacation” from Summer of Code and traveled down to San Diego for my first time. ;) Actually, officially I’m here with my UIUC research group for the Federated Computer Research Conference (FCRC) to attend the International Symposium on Computer Architecture (ISCA) - also my first time at one of these types of conferences (but there’ll be plenty more as I continue the Ph.D. program). FCRC is a combination of a bunch of other conferences, so there’ll be sessions about programming languages, theory, and more - it’ll be interesting to hear about the exciting new research in those fields as well.

The flight from San Jose was just over an hour, and we landed in the Commuter Terminal (so if you ever have a short flight out of SAN, make sure to go to CT and not Terminal 1 or 2). I met up with another of my advisor’s Ph.D. students, and we taxied to the hotel/convention center and took the trolley to Old Town to find some dinner.. mexican food! I’m sure there’ll be plenty more in the days to come before I leave Wednesday night.

Flying into FCRC 2007
About to land at SAN - flying past the baseball stadium

No Comments | Tags: Conference, San Diego, Summer of Code, UIUC

8 June 2007 - 17:55Whew.. submitted to MICRO

The last several days were.. filled with activity - gathering data and preparing a paper submission to MICRO-40. It’s my first time to submit a paper, and it’s mostly the research I did during the Masters portion of the degree, so it’ll be interesting to see how things work out.

Yay for screen multiplexing! Perhaps it’s more useful for my 12″ iBook G4, but ssh + screen to keep console sessions running from a single terminal is very useful when moving around remotely. Add in vim’s own document splitting.. I’ve got 10+ virtual windows with many more subwindows to edit scripts like crazy. All this is going on with X windows opening and closing as tests start and finish…

After 100s of emails and last minute changes.. time for a nap.

X windows galore
Running a ton of tests remotely - X windows everywhere!

No Comments | Tags: Conference, UIUC

21 May 2007 - 0:00Bay to Breakers 2007 pt.2

Wow. Such a long entry that it needs 2 parts? Well, I just wanted to separate the after-race excitement from the during-race fun. And because there’s too much text in the first part, I’ll just put pictures of places that Team UIUC visited.

Ocean Beach
Pacific Ocean + tons of wind = sandy beach
End-of-race Muni
Our ride back to downtown decided to block traffic instead
View from Duboce Park
Looking down Pierce from Castro
Castro Coffee
Corner of Duboce and Church = Castro Coffee
Downtown San Francisco
Powell Street Muni Station has an Apple Store
California Flag
A very sunny day at Union Square

No Comments | Tags: San Francisco, UIUC

20 May 2007 - 12:00Bay to Breakers 2007 pt.1

Today was the annual Bay to Breakers race that runs across San Francisco - starting on the east side on Embarcadero (next to the San Francisco Bay), cutting across the city and the Golden Gate Park, and coming out to meet the Pacific Ocean. The Mozilla people planned to meet at Cupid’s Span to prepare for the race and pass out Firefox swag, and I found some of them at the Mountain View Caltrain station at 6am.

Cupid’s Span
Sunny day in SF from Cupid’s Span

The train was packed with a ton of people - some of which were race participants, but the majority were going for the “parade.” The latter group had all sorts of costumes dressing up like superheros or McDonald products (fries, milkshakes, Hamburglar). Quite a few people brought refreshments (some loaded up with shopping carts), but these drinks aren’t the ones that help them go faster in the race.. not that they were worried about getting to the finish line in the first place. ;)

By the time we got to San Francisco, there was a huge crowd, so I walked towards the starting point with some UIUC friends hoping to eventually find the Mozilla people later. We made a quick stop to grab some drinks and breakfast, but by the time we finished, the race had started promptly at 8am, so the Mozilla people were nowhere to be found at the meeting spot.

So I decided to take some detours through the city following one street off of the main parade to later catch up with Team UIUC. The nice part about not getting lost in the crowd is that I could take stops and examine the various decorations around the city. Also interesting to note was that as I ran down the street parallel to the main race, there were extremely long lines of cars going in the other direction - seems like the only way to downtown San Francisco from south of the race was going to the Bay and up Embarcadero.

San Francisco Decorations
Art at the Child Development Center
Timer at Hayes/Pierce
1 hour 41 minutes in and not even halfway
Hayes Street Hill
Highest intersection of the race (3mi mark)

I soon caught up to my friends, and we witnessed all sorts of interesting sights to see (and some you don’t want to see). The entrance to the Golden Gate Park is near the 4 mile mark, and this is where many people left the race to party party party with plenty of drinks and music and crazy outfits to go around.

Pirates
Arrr matey.. one of the many floats

Team UIUC finished the race with a time just over 3 hours - not that we began at 8am or the starting line..

UIUC at the finish line
Windy end of the race (but still sunny)

No Comments | Tags: Mozilla, San Francisco, UIUC

14 May 2007 - 0:00Graduation - May 13, 2007

It’s been just under 4 years since high school graduation, and it’s already time to officially end the undergraduate program by getting my B.S. degree in Computer Science. Things have gone by especially fast this last semester with all the work in gathering data and writing the M.S. thesis - one of the opportunities provided by the combined M.S./B.S. program in C.S. There’s always stuff happening like moving into the house off-campus 2 years back and starting Teaching Assistantships 3 semesters ago, so being very busy seems to make time go by much faster.

Ed getting the diploma
Shaking hands with the Engineering Dean

But graduating doesn’t seem to change too much - I’ll be back at UIUC for the Ph.D. program in Computer Science for Fall 2007. Well, one difference is that I’ll need to take several classes each semester again and not just one like last semester, but learning is fun and I’m sure I’ll be making plenty more trips to Siebel Center for classes and research.

Ed at Siebel Center
Entrance to Siebel Center for Computer Science

On a side note to potential Master’s students, your gown gets extra wings on both sides and a “hood” that comes with an extra tail at the bottom. These are the rewards for your extra effort (and $12 more for the rental fee). Note: I don’t think the wings and tail will help you fly. ;)

Master’s outfit from behind
Additional fancy stuff for Master’s graduates

No Comments | Tags: Graduation, UIUC