11 Jul 2001 deven   » (Journeyer)

You want an example of a project I've contributed to? I've contributed to Mozilla a bit in terms of reporting some bugs and participating in discussions about a number of other bugs. I've also sat down with thousands of lines of Mozilla code, searching for an incremental reflow bug in the HTML tables -- I didn't get as far as finding the bug, due to the sheer complexity of the application and even that small area of it. I did spend many hours testing and debugging it anyhow.

I've contributed a lot of ideas about design and architecture in Bugzilla, but wasn't in a position to implement any of them. In fact, I offered to implement a new cache manager system (because the old one was horribly broken and linked to many bugs), but nobody seemed interested, and one of the core developers did it his way instead. (Had I tried to write it myself, that time would have been wasted.) I recently offered to work on code to implement asychronous DNS queries without relying on a system's resolver libraries; again, nobody seemed very interested. Just after Mozilla was released in 1998, I was interested in writing a TELNET client for it, but again nobody seemed interested.

Here's a list of the Mozilla bugs I've personally filed:

7617 (apprunner reformats during mouse click on or tabbing to link)
7621 ([PP] Tab key doesn't advance to next field in a form.)
24518 (Initial paste into URL field inserts Japanese or Chinese!)
63892 ([RFE] "View/Edit Live Page Source" mode.)
65508 (Download progress dialog ["Saving File" window] shouldn't be a transient window)
65521 ([linux] modal dialogs should only freeze parent window (not all windows))
65526 (middle mouse button should work on personal toolbar)
65614 (Scaled images with width or height by % endlessly redisplay)
70361 (SEGV in [@ JS_GetFunctionObject] on submission from Bugzilla)
70363 (Inconsistent Build ID on nightly build!)
70479 (Broken menus after applying theme.)
70498 (Should the middle mouse button be overloaded?)
70501 ([RFE] The middle mouse button should work more consistently.)

Here's a list of additional Mozilla bugs where I've participated in the discussion to some degree:

6085 (Middle-click on link should load the link in new window)
6119 (View page source tries to reload page)
7201 ([FIX]When printing pages w/frames, frames print on separate pages [print][frames])
22687 ([RFE] PGP Plugin)
28212 ({table-reflow} Clicking on URL dynamically resizes table cells)
29429 (Clicking in textbox or on a link moves content)
30917 (implement DNS caching and request cancelation)
39057 (File > Quit can be chosen by users intending to use File > Close)
39957 ('Save as...' not fetching from cache)
40867 (Need means to reuse/reload current page without refetching from server)
52798 (gif img in table with width=100% blinks rapidly (flashes, flickers) (can happen without tables) [layout])
55312 (Paste (using middle button) of clipboard contents that come from a remote window fails)
55583 (view-source should show original source (use cached source))
56346 (Need to cache *all* pages for session history purposes)
57724 ([meta] View-source munging pages)
60426 ([rfe] Allow users to choose between generated and source html in view-source)
63445 (tables incorrectly widened to 100% width)
67161 (Need `progress' type for windows)
67442 ('open link in new window' doesn't work all the time)
67574 (Can't open (some) menus after switching themes)
82151 (Right arrow key at end of a TEXTAREA goes to the beginning)

If the qualification for Apprentice is "contributed in some way to a free software project", does this qualify as enough of a contribution for at least that level?

I try to make time for Mozilla, because I consider it to be a tremendously important project. I've done what I can, but it's very hard to actually contribute new code to a project that's so extremely large and complex. If I could make it my full-time job to hack Mozilla, I would, but I can't afford to quit my job and spend all my time on it unpaid; I have a family to support. So I can only do it in my spare time, of which there isn't much.

With over a million lines of code, and a slow computer (Pentium 200 MMX), it's not trivial to track the CVS version and keep rebuilding it. It's even harder to figure out what code to contribute and how to do it, because the system is enormously complex and it's been a fast-moving target all along. I don't want to spend lots of time learning how to use one interface only to have it discarded because the system was rearchitected yet again. It's probably getting to the point where it should be more stable now, but it still takes time I haven't had to learn the API's.

I'd still like to write a TELNET client implementation in Mozilla (I've implemented the protocol on top of TCP before), but I wouldn't have a clue how to begin. I could use a "Mozilla mentor" for some guidance in getting started, but nobody seems available for that purpose, and I don't have time to go searching for one. I probably need to start hanging out in the #mozilla channel on their IRC server, but that takes time and energy in and of itself.

Maybe I should have ignored Mozilla and picked something smaller to work on; I made a deliberate choice to focus my available efforts on Mozilla whenever possible because of the importance of the project. Unfortunately, it's a very daunting project to work on when your time is very limited...

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!