posts during 2007

State of the Projects, 2007

Update of 2006 State of the Projects.

Free-time project status:

  • Password Exporter – Finished version 1.1 this week and is currently awaiting localization to the 20 languages it’s now in. Should be released sometime the first week of January. More details on that version will be in an upcoming post. Password Exporter has now been download over 203,000 times and has about 70,000 active users every day.
  • FavLoc – Haven’t had time to work on it. Will try to find time to update compatibility for Firefox 3 sometime soon, but doubt I’ll add any new features. 28,000 downloads and 6,000 active users.
  • LSU Campus Map – I haven’t updated anything since I first made it a few years ago, but it’s still very popular with people just searching for an LSU campus map. It had especially high traffic following the recent shooting on campus.
  • All other projects including arraise, Startup Authenticator, Degree Analyzer, elurt, and all other ideas in my head that I detail but never start – I haven’t had time to work on and are pretty much dead.

Work project status:

  • – Remora was launched in March and the AMO team is currently working on version 3.2 to be launched in mid-January. I’ve been working on a statistics dashboard for add-on developers, and after 3.2 will be continuing to work mainly on AMO stuff, probably including a Developer Control Panel revamp with lots of new features.
  • Operation Firefox – Contest was a big success and winners were announced earlier this month. Site will probably stay the way it is.
  • Extend Firefox – Contest ends tonight. Future plans to be announced later.
  • Rock Your Firefox – 0.6 released. Work on other milestones is not currently scheduled, and the app is pretty much in maintenance mode right now.
  • Personas – Site hasn’t officially launched yet, but has been finished for a few weeks.
  • Misc. other projects popping up and going away just as quickly.

The last few days I’ve been cleaning up a lot of site stuff, as I was quite shocked to find I had over 50 subdomains on this site, many of which are no longer used. I think I’ll be removing the ribbon from my pages soon, as I don’t think it’s helping anything.

I’m taking a class between the fall and spring semesters in order to fit in 3 more hours to graduate next December. There are only a few courses offered during wintersession, but fortunately two of them fulfill the generation education humanities course I needed. My choice was obvious and I’m now spending 3.5 hours a day Monday through Saturday studying zombies.

English 2025 is a fiction course that is taught on a variety of subjects, one of which is Zombies in Fiction. I went in not knowing much about them and after the first class I already felt that I knew way more than a normal person should know about the undead. I’ve never liked horror movies, but these haven’t been bad at all. Zombies didn’t originally attack people or seek flesh anyway.

In the first 6 classes, we’ve managed to read and view a whole lot of Zombie fiction: White Zombie, I Walked With a Zombie, “Dead Men Working in the Cane Fields”, “Salt Is Not For Slaves”, The Plague of the Zombies, “The House in the Magnolias”, “Song of the Slaves”, “While Zombies Walked”, Night of the Living Dead (1968 original and 1990 remake), Return of the Living Dead, I Am Legend (novel and movie), 28 Days Later, “The Facts in the Case of M. Valdemar”, and Fido.

In the remaining 4 classes after Christmas break, there will be 4 more movies, 2 novels, and a couple more short stories. Wooo.

During my 3 months in the Mozilla Mountain View office over the summer I saw a lot of interesting things and met a lot of new people. Of all those experiences, the thing I miss most is Ken Kovash, or “ko-ko” as he was known.

I had the honor of sitting next to Mr. Kovash for around 2 months. For the first week, there wasn’t even a divider between us. I watched as he dared request an IBM Thinkpad in the presence of so many Macs. But that’s just like Ken. Always the shining star; never one to conform. I watched as he removed the taped paper from under his optical mouse and asked if I placed it there. I watched as his chair would sometimes be missing when he came back to his desk. I often thought he played these pranks on himself. Because no one is deft enough to prank Ken Kovash.

Every morning when I got to my desk with cereal in hand, Ken would be there (sometimes) to say “Good morning, Justin.” It gave me the energy to get through the day, until around 5 when he would say “see you tomorrow”. I think he might have said a few other things during those months, I can’t quite remember now. I didn’t start writing them down until the last week.

I know that I am not the only one influenced by ko-ko. I can only hope that polvi, melissa, and others that sit around him have absorbed some of his knowledge while they can.

Statistics Dashboard

A statistics dashboard for add-on developers that shows historical graphs of downloads and active users based on update pings. The active user data should include breakdowns for the add-on version in use, the application and version, operating system, and add-on status (enabled, disabled, incompatible, etc). This is already being implemented and, if all goes according to plan, will launch (at least on a preview site) by the end of 2007 populated with data from the last 6 months.

Developer Control Panel Revamp

AMO has a lot of new ideas and a lot of new users. The Dev CP is better than it was pre-Remora, but can still come a long way in user experience and discoverability. The public side of AMO will be getting a makeover soon, and following that I’d like to redo the Developer side to support many of the new principles we’re trying to implement.

Localization of Extensions

Although the AMO site itself is available in 20 languages and more every few months, many of the extensions hosted on the site are only available in one. The site is translated, but does not have a truly localized feel to users in other locales. Wil Clouser has been working with the L10n drivers and I think AMO will have a plan soon for how we’ll facilitate the localization of more extensions so that when someone visits the site from Japan, they see featured add-ons that are popular in Japan and have Japanese descriptions and language packs.

Taggable Extension Code Repository

The Mozilla Security group has long wanted a searchable repository of extension code to look for vulnerabilities and also to know if extensions will break if a certain part of Firefox is changed. These searches are currently done manually by AMO admins. A taggable extension code repository would support that, as well as provide extension developers with a large pool of example source code.

When uploading an add-on to AMO, developers would be asked if they’d like their extension to be listed in the extension code repository. The repository would have a wiki-style tagging system, in which anyone could select specific lines of an extension’s file(s) and tag them as “opening a new tab” or “creating a new about: page”. (I volunteer Mark Finkle to be the wiki gardener!)

A simpler version of this that schrep suggested is checking extension source into a CVS repository and using existing tools like LXR/MXR.

Add-on skeletons

A few weeks ago I noticed that Facebook has made it ridiculously easy to create an application. There’s now a “Check out example code for this application” link under each of your applications that pops up a dialog with 3 easy steps to create a working application, two of which are copy and paste and the third is clicking a link.

I was trying to think of ways that we could do the same for add-ons. I know there are already various tools available for creating basic structure for install.rdf and such. Chris Beard suggested creating skeleton extensions for each of the major types of extensions, such as a statusbar extension, sidebar extension, toolbar, theme, etc. This would make it very easy for new developers to dive right into working code and not spend time trying to figure out the directory structure of an extension.

Along with the basic skeletons, we may want to provide “tutorial” skeletons that are extensively documented. For example, where we include a JavaScript file in XUL, we have a comment that explains why you should never include a remote JavaScript file in an extension.

I don’t expect all of these things to happen in 2008, but it’d be cool to see a few of them.

Someone asked me how I was searching Bugzilla from my location bar last week, so I figured there are probably a few others who aren’t familiar with QuickSearch + SearchWords and would benefit greatly from finding out about it, so here’s a post!

The little search box on every page of Bugzilla is useful for more than just typing in bug numbers – it actually has a pretty detailed syntax that can be used to narrow down bug queries faster than using advanced search in many cases. Jesse has a page listing all of the tricks, but I’ll mention a few of the ones I use.

Using a colon in QuickSearch specifies the product or component to search in. For example, :firefox would search bugs in the Firefox product and searches,, and a number of components in Websites.

QuickSearch defaults to searching only open bugs, but adding “ALL” as the first word of your search will make it search both open and closed bugs. @ will search for bugs assigned to that user. So, “ALL :addons @fligtar” returns all bugs I’ve fixed or am currently assigned to in product.

QuickSearch is great in itself, but combined with SearchWords, it’s even better. (SearchWords is part of Firefox 3, so you only need to install it in Firefox 2.) I have the “bug” keyword associated with the Bugzilla@Mozilla search engine, so typing in “bug :cvs” in the location bar will return all of the open CVS Account requests.

I never bookmark bugs because of this method, even if it means once a day doing Command + T, Command + L, “bug :addons statistics” to find the same bug over and over.