Aug 302006

Tonight I “finished” the last set of developer documentation that needed writing for Firefox 2. While there’s still touch-up work to do, and a couple of samples I’d like to write, the documentation has reached the point at which if we shipped Firefox 2 today, I’d be satisfied with the state of the developer documentation for it.

That’s a pretty good place to be as we approach the beta 2 release.

It means I can use the rest of the time leading up to GM to get the finishing touches put on.

One request: if any themers are reading this, I’d sure appreciate your help on improving documentation about updating themes for Firefox 2. I’ve got a document that basically lists the XUL changes, but if someone with more practical experience would like to write up a how-to guide, I’d really appreciate it (as would the rest of the themers out there).

Also, if you see anything else in the Firefox 2 developer docs that you don’t understand, or think could be explained better, freel free to edit — or, if you’re not comfortable doing the edit yourself, drop me an email or even post a comment on my blog here. I’ve got changes in mind, but I’m sure there’s stuff I haven’t thought of yet.

I think we’re in good shape for Firefox 2 to be the best-documented release yet, and I’d like to thank everyone that helped out, including folks that helped with the writing, but especially the coders that helped me figure a few things out, and the folks in IRC that gave me helpful feedback on layout and the like.

 Posted by at 9:48 PM
Aug 292006

I spent today writing myself a little RSS reader extension for Firefox 2. It just adds a clickable item in the status bar that, when clicked, opens up a new window and displays the contents of an RSS feed in it, with clickable links on the titles of each article that take you to the targeted site.

Nothing fancy, but it let me figure out a lot of stuff about how the new feed content API interfaces work. I’ve written the first bits of a document about them, and will be adding more content, including documentation for the interfaces themselves, over the next few days.

It’s actually a pretty handy API. Once you learn the gist of how it works, it’s pretty smooth to implement stuff with.

Took me a couple days to figure things out well enough to write the initial sample and the corresponding document (which I know still needs some fleshing-out). But now that I have a grasp on things, the rest of the document should pull together pretty easily.

I love this stuff.

 Posted by at 12:11 AM
Aug 242006

I’ve been continuing to work on the Theme changes in Firefox 2 document, and I think it’s getting better. It now includes a table with a list of the XUL and XHTML files that have changed in ways that require updates to CSS files in themes. That will be much more useful than the long list of changes made to the default theme, although I’ve left that in as well, since so many themers work by starting with the default theme and updating it.

The doc still needs some massaging, but from my perspective (as a guy who hasn’t done any theming) it’s mostly done. If anyone has suggestions, or would like to work the doc in ways to make it more useful to real themers, please by all means do! I want to be sure the doc is in great shape, and this is a case where I could really use some outside help.

The only other docs left to write for Fx2 are the feed access API doc (which should be frozen by now, since it’s supposed to be in for beta 2, which has frozen), so I should be asking around about that today or tomorrow, and the versioning best practices doc, which for some reason I don’t really want to write. Not sure why.

I still want to work up a sample for using the session store API, but haven’t had a chance to do it yet.

At any rate, we’re in fantastic shape to have all the Firefox 2 docs done by the time it ships, which is very cool.

 Posted by at 1:24 PM
Aug 182006

I decided last night that instead of trying to go through all the CSS files that comprise a Firefox theme by hand, or using utilities like diff that don’t handle cases where the contents of files are rearranged very well, I’d write a new tool designed specifically to compare the styles in two CSS themes.

I finished the utility a little while ago, and it’s working very well. I pass it two CSS files and it spits out a list of all the styles that are unique to each file, as well as a list of the styles that are common to both but have different definitions.

This is going to make the Theme changes in Firefox 2 document much easier to write. Still tedious, but not the massive task it would have been without this utility. I love handy-dandy utilities.

 Posted by at 5:18 PM
Aug 162006

… is themes.

I’m finally getting to work on the write-up of what’s changed in the land of themes for Firefox 2. It’s going to take a few days at least of poking through the skins hierarchy to sort out which CSS files have to be changed, and which ones just happen to have changed in the Pinstripe theme for Firefox 2.

I’ll also be dropping emails to a couple of people to get their input on areas of the theme changes that they’ll know specific things about (such as the theme changes associated with microsummaries — hi, Myk). Other than the feed access API, which as far as I know still hasn’t fully stabilized, this is the last completely undocumented part of Firefox 2.

That of course doesn’t count the “bonus surprise technology” that someone will almost certainly spring on me about three days before Firefox 2 ships. I don’t say this because of some special knowledge that there’s another technology to document, but because of Sheppy’s First Law of Documentation Uncertainty, which stipulates that “For any project involving five or more people, at least one feature requiring documentation will be forgotten until the last possible moment.”

I can’t think of a single project I’ve been involved in documentation on in which that law failed to hold true, and I’ll be stunned if Firefox is the first.

Fortunately, the urgency of documentation is only rarely such that it can’t wait until the product is already out the door, thanks to the live and real-time nature of the Web. Thank you, Tim Berners-Lee!

 Posted by at 7:03 PM
Aug 112006

That was surprisingly uncomplicated. Left the hotel for the airport at about 3:45 AM, and was at the gate an hour before takeoff. Everything went quite smoothly, and I arrived home on schedule. This despite the fact that my flight from Toronto to Cincinnati was canceled; they simply put me on an earlier flight — which had already been delayed an hour, so it wound up leaving about the time I was originally scheduled to leave anyway.

Now I need to do a lot of sleeping before getting back to work again.

 Posted by at 8:54 PM
Aug 102006

So, courtesy of some terrorist goons, my return trip home tomorrow will likely be rather complicated by the unfortunate need to boost security at airports for the time being.

So my already expected to be very early rise to head for the airport will now be even earlier, so that I can be sure to get through whatever delays there might be due to this mess. Sweet.

This isn’t to say I don’t appreciate the fact that the bad guys were busted before carrying out their nefarious plot (assuming they’ve all been caught) and that it’s unlikely that this particular attack will take place (again, same assumption). I also appreciate the value in increasing security to help ensure that this specific attack really is truly foiled. Doesn’t decrease the frustration level, but it’s for a fairly sensible reason.

 Posted by at 3:43 PM
Aug 082006

I’m sitting here at my desk, waiting for my Treo to finish syncing so I can yank it out of the cradle and check one more item off my “ultimate list of things I’ll hate myself if I forget to bring to Toronto.”

You’d think my cell phone would be a no-brainer, but, when it comes to leaving the house, I do in fact appear to have no brain whatsoever, because if it’s not on the list, it probably won’t make it out the door with me. It’s pretty sad.

Despite many years of living overseas as a kid (I spent most of my grade school years living in Sumatra, Indonesia), and all the travel we got to do on the cheap courtesy of my dad’s employment with Chevron in tandem with living overseas, this will still be my very first time in Canada.

Sure, I’ve been to a number of countries in eastern and southeast Asia, as well as a few in western Europe — not to mention Egypt — but for some reason, going to Canada is strangely exciting. Maybe because I haven’t left the States since I was 12 and we moved back here. 22 years in one country has gotta be some kind of record.

Maybe not.

Anyway, it seems wrong somehow to be flying to another country on a regional jet, even if the thing is named after the country I’m flying into. At least it’s only about 3 hours total flying time, with a stop roughly halfway (in Cincinnati). Still, I could really use a comfortable seat with enough legroom that I don’t wind up tapping the guy in front of me on the shoulder and saying, “Hey, I just spent the last hour prodding your kidneys, and I simply have to tell you — you need to go see your doctor; I think you might have a stone in the one on the right.”

OK, that’s enough weird babbling for now. Catch ya on the flip side.

 Posted by at 8:22 AM
Aug 062006

So on Friday afternoon, I decided, “Screw it. Even though I’ve got stuff I absolutely have to get done this weekend, I’m not gonna do it.”

I feel better already. I’m feeling much less like a potential member of the United States Postal Workers Strike Squadron and more like a frustrated half-programmer, half-writer.

That’s pretty much my normal state of being, so that’s cool.

I spent Saturday napping on and off, watching bad television, and installing and playing a little StarCraft for old times’ sake. It plays pretty well on my Intel iMac, except that the movie player is stuttery, and whenever it goes to the CD for something the entire game freezes up for, like, ever.

Today Sarah is taking Sophie to buy new shoes, so I’ll have the house to myself for a good part of the afternoon. I expect to do more of the same. Sleeping, television, basically being a total slug.

Oh yeah, the reason this is in the Mozilla category: I got my Mozilla stuff building on Friday morning. Turns out that indeed, I needed to install some libraries. By total coincidence, I’d previously already installed the required libraries for work on other projects when I first did a build of Mozilla, so I didn’t have to install them the first time. After wiping my machine, though, I didn’t have them anymore.

Anyway, it’s all good now. Thanks to everyone who gave me advice!


 Posted by at 11:45 AM
Aug 042006

It’s pretty cool doing docs for Mozilla projects. There’s always new and interesting documentation to write (even though sometimes the documentation is actually about relatively old code). I’ve got a variety of things that I’m either working on or am planning to tackle soon — although if anyone feels like doing it for me, I sure as heck won’t complain.

Unfortunately, I’m still recovering from having to reinstall all my stuff after my iMac got hacked into. I still don’t think anything was compromised, but better safe than sorry. At this point, the big problem is that some of the code I’m fiddling with in order to get a proper grasp on how various concepts work was being done by actually playing around with the Firefox code.

This would be fine, except that now, when I use the same steps I always used to pull and build the 1.8 branch version of Firefox (ie, Bon Echo), I get errors about missing libraries, such as freetype, which never happened to me before.

So I figured I’d pull my backup of the source tree from my Backup archive. Of course, if you’ve seen my recent messages, Backup has been crashing if I try to restore more than a handful of files at a time.

When was the last time you counted how many files are in the Mozilla tree?


So if anyone knows why I might be getting errors about how freetype isn’t installed, I’d love to hear it.

Anyway, back on to what I’m planning to write about in the near future.


Sometime in the next few weeks, I’m going to start writing articles that will actually take some of the best add-ons on AMO and pull them apart to find out how they work, demonstrating the techniques behind them. I’ll likely be dropping emails to the authors of extensions I pick. I’ll do one dissection every few weeks (the exact interval depends on how much other stuff I’ve got going on at any given time).

Dria and I think this’ll be an awesome educational tool for new developers, to see how the “old hands” get things done.

XPCOM Proxies & JavaScript Threading

I’ll be writing documentation on how to use XPCOM proxies for communication, as well as on threading in JavaScript. This may be a long-term project, since I’ve got some reading and experimenting to do, as well as a lot of people even geekier than I am to ask questions of before I get this thing seriously into gear. It should be all kinds of fun though.

Xcode and Mozilla

I’m also going to be updating, rewriting, and augmenting (as necessary) our documentation on how to do Mozilla builds on the Mac using Apple’s developer tools. This is on my plate for two reasons: first, it needs to be done. Second, I’m a Mac nut and will find it incredibly useful. And, well, there’s actually a third reason too: it’ll be all kinds of fun.

Assorted Other Stuff

I’ll be working on other stuff the next few months as well, I think, including reviewing any new articles folks ask me to look over, and doing some random spot-checking of existing articles. I’ll also likely be helping do work on the XUL reference, although I haven’t actually talked to Deb recently about it.

Of course, this list is just based on current plans, and can change at a moment’s notice, since it’s a combination of what I’ve been asked to work on and what I want to work on. Enjoy your grain of salt.

 Posted by at 1:14 AM