26 June 2007 - 19:29ActionMonkey Time! (Begin Internship)

Today I officially began my Mozilla internship where I’ll be playing around with ActionMonkey [wiki.mozilla.org] for the Mozilla 2. This new monkey is a combination of two monkeys: SpiderMonkey (current JavaScript engine used by Mozilla created by Brendan Eich [wikipedia.org]) and Tamarin (VM and JIT for ECMAScript 4th edition donated by Adobe).

Eventually, this new engine will speed up Firefox, which has a front-end that is mainly controlled by JavaScript, as well as web applications using JavaScript. It’ll be able to do runtime optimizations instead of just interpreting the code - similar ideas to what can make Java faster than C++ code.

As for the Summer of Code project, I’ll need to finish up the Link Fingerprints Internet Draft and wait for comments. Code-wise, I have a working implementation with patches in bug 377245 [bugzilla.mozilla.org], but it seems like things are waiting on the standardization of the Link Fingerprints concept. And the side project of coding up Download Manager changes might take a back seat for now. (Well, the main big thing here was using bytes/KB/MB/GB units when appropriate [bugzilla.mozilla.org]. :) )

No Comments | Tags: Mozilla, Summer of Code

26 June 2007 - 1:29Status Update (2007/06/17 - 2007/06/23)

Status Update:

[RFC] Writing draft for #hash(type:data) syntax with a specific type of sha256
for all mime types.

[Code] Updated code from reviews + strictify syntax and made big patch
available in bug 377245. (grab v2 bug 385599 with the #undef if you want to try
things out)

Last week (2007/06/17 - 2007/06/23):

- Get code reviewed and update from comments
- Add flag to turn on/off (bug 385599)
- (Interview for platform internship)
- Not get responses from various people about drafts, RFC, IETF
- Outline and draft the internet draft

This week (2007/06/24 - 2007/06/30):

- Continue writing draft and review/submit before July 2nd
- (Start internship?)

No Comments | Tags: Mozilla, Summer of Code

19 June 2007 - 1:50Status Update (2007/06/03 - 2007/06/16)

Status Update:

[Code] Things are working fine for me. Waiting for reviews.

[RFCs] Contacting people on how to draft Link Fingerprints for IETF’s July 2nd meeting.

Last 2 weeks (2007/06/03 - 2007/06/16):

- Done initial coding to support Link Fingerprints for HTTP downloads/pages
- Open various bugs to break the patch into pieces - waiting for reviews.
- (Submit to MICRO; Attend FCRC for ISCA, PLDI, HOPL - majority of last 2 weeks)
- Fix related download manager bugs (and other random bugs..)

This week (2007/06/17 - 2007/06/23):

- Draft Link Fingerprints.
- Write. Write. Write.
- Contact Borden and St.Laurent about their type-independent #fragment-id

No Comments | Tags: Mozilla, Summer of Code

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

4 June 2007 - 0:00Status Update (2007/05/27 - 2007/06/02)

Status Update:

[Code] Got automatic hash checking working in the channel so it gives an error status on Link Fingerprint failure, so loading bad hash pages results in an error page, and some images (gif, bmp) show up as a broken image.. others like jpg progressively load and show whatever they have on failure (i.e., the whole thing).

[RFCs] Looking into other #fragment-id uses (XML XPointers and PDF) and references from Wilde and Baschnagel’s text/plain paper in HT 2005 (Sixteenth ACM Conference on Hypertext and Hypermedia).

Last week (2007/05/27 - 2007/06/02):

- Implement hash comparisons and pass on an error code from OnStopRequest to listeners downstream
- Add a new network error pages for Link Fingerprint failures on page view (need a better string..)
- Discuss implementation details on m.d.t.network clarifying my current implementation just provides a new error code after the transfer finishes
- Attend Google Dev Day (Thursday)
- Invite Erik Wilde to discuss RFC stuff and Link Fingerprint issues
- Begin handling of Link Fingerprint failures in the consumers like download manager (vs webbrowserpersist/exthandler)

This week (2007/06/03 - 2007/06/09):

- Remove/delete failed downloads cleanly from the download manager
- Refactor added code in HttpChannel so adding Link Fingerprints to other channels is clean/simple
- Look into the image library to handle Link Fingerprint transfer failures
- Figure out what interfaces to provide (for extensions) e.g., exist?/get fingerprint from URI, check fingerprint against file/stream
- Note: Next week I’ll be out - attending FCRC 2007 in San Diego 9th to 13th

No Comments | Tags: Mozilla, Summer of Code

1 June 2007 - 0:00Google Developer Day 2007

Today was quite exciting with Google’s event in San Jose. I got to learn about the new Google APIs and developer tools that’ll be pushing forward web applications as well as to meet all sorts of people and see what they’re working on. I attended most of the main sessions except to participate in the Fireside Chat for Google Gears, but the nice thing is that many of the sessions were recorded and are now available on youtube [code.google.com].

Overall, the event was very Google. Colorful decorations with beanbag seats and exercise balls. Free drinks. Free food. Free swag. And plenty of Google products. (Tons of Dev Day photos [picasaweb.google.com].)

Dev Day Shirts
Free Developer Day T-shirts + badge

I found the performance improvements provided by Google Gears especially interesting because one doesn’t have to even be offline to see some benefits (of removing network latency). At the fireside chat, I asked a question about Javascript performance (relating to my research area) because Gears will facilitate building more complex web apps that do a lot more (distributed) processing on the client. The responses were valid in that bottlenecks do come from updating the DOM and disk I/O, but maybe I was just hoping to hear what Google has planned in pushing Javascript from interpreted to JIT and then adaptive optimizations.

And after the conference part ended, there was a big party at the Googleplex with even more free food and beverages. The center of the campus had food stands with hamburgers, corn dogs, shaved ice, cotton candy, churros, nachos, and a bunch more. The dining area of the main cafeteria changed into a party area with a DJ, pool tables, arcade games, and flashing lights with the projector showing photos of Dev Day around the world.

When it started getting dark, they brought out some neat cups to add to the party atmosphere - glowsticks in a cup form. Basically, cups that glow, so you end up drinking glowing green goo in the dark.. kinda. Just make sure when you hit the cup against a hard surface to break the glow capsules, don’t hit so hard that you crack the cup causing the liquids to spill out.

Red Cup
“Cracked” glow-cup (only the middle red one is glowing)
Glow Cups
Flash shows the cups’ true color

No Comments | Tags: Google, Mozilla, Summer of Code

29 May 2007 - 0:00First SoC Payment

Woohoo! $500. Picked it up at local Safeway Customer Service counter without any problems. I filled out a Western Union “receive” form with the various information provided by Google, and the next day I handed it in and showed my driver license, and I got $500 cash back. Hopefully next time they’ll just give me a check instead.

Hrmm.. what to do with this money in the Bay Area? Buy more food for the interns? ;)

No Comments | Tags: Mozilla, Summer of Code

28 May 2007 - 0:00Status Update (2007/05/13 - 2007/05/26)

Status Update:

[Code] Last couple weeks I started playing with Mozilla C XPCOM and did a quick
implementation of Link Fingerprints for the Download Manager, which will help
me implement Link Fingerprints at the network level (i.e., Channels). I’ll
finish up the initial Channel implementation by conditionally deciding to do
Link Fingerprints and compare hashes to conditionally fail the transfer.

[RFCs] Looked into existing RFCs and internet drafts to see possibles scopes
for our RFCs (a general extension to #fragment-ids (e.g., #!type!data) and Link
Fingerprints). URI general syntax says the semantics of #fragment-ids are per
MIME-type (e.g., application/gzip or text/plain (which has an internet draft
requesting new #fragment-id functionality)), so right now, things seem tricky
to request an all-encompassing RFC.

Last 2 weeks (2007/05/13 - 2007/05/26):

- Graduate 5-yr MS/BS in CS from UIUC and fly home to California bay area
- Settle in at Mozilla Mountain View, discuss implementation with Dan Veditz
- Investigate RFCs and discuss on m.d.a.firefox
- Research Mozilla C codebase to learn XPCOM, pointers, interfaces, fun
- Practice what I learned by partially implementing Link Fingerprints in
Download Manager
- Begin implementing Link Fingerprints (as a stream converter) in the network
to handle all requests and not just downloads (currently it prints the md5 hash
of all HTTP requests)

This week (2007/05/27 - 2007/06/02):

- Start (officially) Summer of Code (2005/05/28)
- Communicate with DownThemAll developer (Nils Maier) to see what we can share
- Add checks to nsHttpChannel to only do Link Fingerprint stuff if the URI
contains a Link Fingerprint-like reference and if it’s not a partial Range
request
- Actually compare hashes and not just print out the computed hash ;)
- Find Erik Wilde (#fragment-id for text/plain author) to ask about RFC stuff

No Comments | Tags: Mozilla, Summer of Code

18 May 2007 - 0:00Wii Has Arrived!

It’s been a few days since starting at Mozilla, and I’ve looked through various RFCs to find the related work and analyze the structure for writing my own for the project. I’ve been making good progress and posting my findings on the Mozilla newsgroups such as mozilla.dev.apps.firefox [groups.google.com].

I’m still matching up aliases to names and names to faces (and trying to figure out if I should call people by their IRC aliases or their names), but people have been good in introducing themselves - helping me to make the connections between them and the features they’ve worked on for Mozilla/Firefox/Gecko.

So as a little present to them for the summer, I’ve set up my Nintendo Wii with controllers and games on the first floor of building K. (As a reminder for myself, so that I don’t forget by the end of the summer: 4 controllers + 1 nunchuk, Wii Sports, Trauma Center, Zelda: Twilight Princess, Super Paper Mario, Wii Play, Super Monkey Ball.) And I just happen to conveniently move out of building K to building S this same day, so I won’t get distracted to play some games during the day. ;)

Toys ‘R Us Wii advertisement
First large-scale Wii ad - Times Square, NY

No Comments | Tags: Mozilla, Nintendo, Summer of Code, Wii

15 May 2007 - 0:00Begin Mozilla Summer of Fun

After a day of traveling from Urbana-Champaign, I’m back home in the Bay Area. One day I have my cap ‘n gown, and the next day I’m at Mozilla Headquarters to begin working on my project for Google’s Summer of Code (SoC) [code.google.com].

I applied for the Link Fingerprints [gerv.net] project with Mozilla back in early April amidst the craziness of thesis writing and full-time/internship interviews. And in the end, I finished the thesis and will continue with my advisor for the Ph.D. program while turning down the other industry position offers to have fun at Mozilla for the summer.

I’m not sure how they picked me out of the 6000+ SoC applicants (was it the big Firefox poster my roommate and I put up a few years back?), but I’m glad that I can meet some Mozilla people that I’ve worked with through the internet. I’ve also had some previous experience with the Mozilla code, but that’s only in bits and pieces with minor changes to Firefox and writing some browser extensions.

Firefox poster in Siebel
Spreading Firefox in Siebel - October 2004

There was some slight confusion early on because Mozilla never had a SoC participant on-site before, and I’m not officially an intern, so I get to be the guinea pig. But soon I got my first Firefox related t-shirt (to add to my stash of Firefox goodies) and was able to settle down and dive into the huge Mozilla codebase with the help of other interns and full-time employees.

First Firefox t-shirt
Gift from Mozilla for starting SoC

Time to begin coding and writing RFCs; and hopefully I’ll finish the project before the summer is over. :)

No Comments | Tags: Mozilla, Summer of Code