Now I Have a Blog TooNow I Have a Blog Too Christopher Finke is a software engineer at Mahalo. He is available for birthday parties and bar mitzvahs.

Posts tagged with 'Mozilla Firefox'

Slashdotter updated to 2.0

Saturday, April 26th, 2008

I've updated the Slashdotter Firefox extension to make it compatible with Slashdot's latest decision changes. "Hide/Show Replies" is working again, the BSD section has been added to the "Styles" options panel, and most of the code has been rewritten due to the fact that we're no longer living in a Firefox 1.0 world. Thanks to Michael Bunzel for the patches!

YouTube Comment Snob updated

Saturday, April 26th, 2008

YouTube Comment Snob is an extension for the Firefox Web browser that allows you to filter YouTube comments based on spelling, capitalization, and punctuation usage.

I've updated YouTube Comment Snob to work with YouTube's latest redesign, as well as to add compatibility for Firefox 3. It's available for download from the Mozilla Add-ons sandbox until it is approved by an AMO editor for mass consumption.

7 ways to be a better developer

Monday, April 14th, 2008

Over the past few months, I've been thinking about ways to become a better software developer, specifically in terms of Firefox extension development. I'm listing the ways that I came up with here; most of it can be generalized to the development of any end-user facing program or application, but I wrote it with extension development in mind. (I initially was going to call it "How to be a better programmer", but as it turned out, the most important things I came up with had little or nothing to do with writing code.)

  1. Keep your ear to the ground.

    Nothing is worse than finding out weeks (or months) after the fact that there's a bug in your software that you never knew about. Nobody e-mailed you about it, you never came across it, so what were you to do? If you had signed up for Google alerts on your name/your extension/your website's name, you might have heard about it from someone who blogged about it ("FeatureFox is terrible. It doesn't even detect my COBOL widgets."), but didn't know how to report it as a bug.

    Having Google e-mail you when your name or extension or website is mentioned in a blog post can be invaluable in getting feedback that you otherwise might not have read. (I also find it helpful to use TweetScan to sign up for an RSS feed of tweets that mention your extension. Twittering is the new blogging for many users, especially if it's just a quick gripe about a buggy extension.)

  2. Give your users a place to talk to each other.

    If you have a popular extension, that can mean that 100,000 users or more have it installed - one person doing customer support for 100,000 users will get old fast. I've found that if the users have a place to talk to each other (a comment thread on the extension's home page, a support forum), oftentimes, the more savvy users will be able to take over a portion of this support duty by helping out a new user who may be in the dark about how to use a certain feature of your extension. Additionally, several users working together may be able to uncover the roots of a bug more easily than just you and a single user working on it. ("We're all running Linux on a Mac with both Firefox and Seamonkey installed and we're all using a non-standard profile directory? That's a weird coincidence...")

  3. Start a public bug tracking system.

    If you're not using some kind of bug tracking system (and I don't include your e-mail inbox as a "system"), you're not really invested in the success of your extension. Although many extensions are quick one-offs to add a new feature to Firefox, keeping track of issues reported by users is key, as 99% of software grows larger than originally anticipated. A public tracking system adds accountability, it gives other users a chance to chime in on a bug that they've experienced but didn't actually report, and it frees up your inbox without casting valid bug reports by the wayside. (I recommend Google Code; it's easy to use, has a nice issue tracker, and the support so far has been great.)

  4. Release early, release often

    The old saying "release early, release often" certainly applies here, but I'd like to warn against releasing too early. Uploading an extension to Mozilla Add-ons that only adds a non-functioning item to the Tools menu just to get it out there will do more harm than good, since users will intall it, see that it's worthless, and uninstall it. Not only will they uninstall it, but they'll be more hesitant to download it in the future.

    Make sure your first release is functional, even if its function is small. It's key to get users to download it, but it's just as key to get them to keep it installed. From that point on though, release as often as you can, since everybody loves a good upgrade.

  5. Talk to your users

    Whether it's by blogging, Twittering, or creating a thread in a support forum, start a conversation with your users. To many Firefox users, software development is magic - the idea that a person can type up some computer code and make their browser do great new things is mysterious and wonderful, and being able to interact with that person allows them to participate in the magic. The most enthusiastic users (and sometimes the ones with the best ideas) are often those who would have no idea of how to actually write the software behind the features. (Perhaps the fact that they are unencumbered by the burden of implementation is the cause for their enthusiasm...)

  6. Be responsive

    This fits in with the previous point, but it's more specific. Once a user has posited a question in a support forum or a blog comment, the clock starts ticking. If it takes you a week to respond about why X or Y doesn't work in your latest release, you can bet that by the time you do answer, that user (and a dozen others who wondered the same thing) have spent the 30 seconds it takes to uninstall your extension because you didn't take the 60 seconds to respond to them.

    On the other hand, timely responses give your users more faith in your commitment to the project. For example, check out this comment left on my blog after I quickly replied to a user about a problem with TubeStop.

  7. Participate in the development community

    Mozilla has a great community of developers, and you're doing yourself a disservice if you're not participating. The Mozilla IRC channels and the mozdev.org mailing lists, for example, are both great resources for connecting with fellow developers to brainstorm over weird bugs or just talk about software-related topics. I like to keep this rule in mind: there's always someone out there who knows more than you about extension development, and more likely than not, they're on irc.mozilla.org.

What do you think? What would you add? Anything you disagree with? Reply in the comments, and I will, of course, respond.

Firefox development productivity tip

Thursday, April 3rd, 2008

Since I always use Firefox as a single window with many tabs (and have become quite adept at switching quickly between tabs, but not so fast at switching between windows), having the Error Console open in a separate window always slows me down. What I've done is created a bookmark on my toolbar (right-click, select "New Bookmark") that points to chrome://global/content/console.xul. This way, I can control where it opens.

Firefox's Error Console in a tab

Feed Sidebar 2.0

Tuesday, March 25th, 2008

Feed Sidebar 2.0 has been released. Upgrade now to enable filtering your feeds with the search bar and to experience the big improvements in performance and memory usage.

Filter your feeds with the search bar.
Filter your feeds with the search bar.

You can install it at Mozilla Add-ons.

Very important news for Firefox extension developers

Thursday, January 31st, 2008

If you've written an extension for Firefox and you want it to work correctly in Firefox 3, read this right now. The ID of the navigational toolbox has been changed from "navigator-toolbox" to "browser-toolbox," and you'll need to update your code to reflect this change. Basically, if any part of your extension adds a toolbar button or a new toolbar to the top part of the browser, you've got some changes to make.

Update: Never mind; they worked out a new fix that doesn't involve chaning the toolbox id.

Mahalo Share Goes to 11

Tuesday, January 29th, 2008

One of the latest things I've been working on at Mahalo is Mahalo Share. It's a utility that automatically posts links that you want to share to 11 different services: del.icio.us, Facebook, Twitter, Jaiku, your Tumblr blog, Ma.gnolia, Faves, Pownce, Mahalo, StumbleUpon, and/or Google Bookmarks.

Mahalo Share dialog box

All of this cross-posting is done behind the scenes using various APIs, so there aren't additional popup windows to fill out for each service. We'll be adding more services as they're requested.

Facebook Scavenger: Now with vCard support

Saturday, January 5th, 2008

I've updated Facebook Scavenger (a Firefox extension that saves a backup your Facebook friends' profile data) to add vCard export support. You can download this new version (1.1) from the Facebok Scavenger homepage, and you might want to hurry. A little birdie told me that this handy tool might not be available for too much longer.

Take your Facebook data with you

Thursday, January 3rd, 2008

Earlier today, I mentioned that it wouldn't be out of the question to write a Firefox extension that would grab profile data about your Facebook friends as you view their profiles so that you could take that data to another service.

Given that, allow me to introduce Facebook Scavenger. It's a Firefox extension that saves data (including e-mail addresses) from Facebook profiles that you view and then allows you to export that data in CSV format.

Robert Scoble Note that this extension does not violate Facebook's TOS since it does not automatically load pages to retrieve profile data; rather, it reformats data that you have already seen on pages that you yourself loaded. Robert Scoble could have saved himself a lot of trouble (and avoided a lot of that nasty publicity that I'm sure he hates ;-) had he just used this extension for a few days.

Facebook Image-to-Email: Back from the grave

Thursday, January 3rd, 2008

A while back I mentioned that Facebook Image-to-Email (a Firefox extension that converts Facebook's e-mail address images to plain-text) was broken after some unknown change was made by Facebook. I am happy to announce that it is working again, after I re-tooled it with a different method for accessing the image data of those e-mail address images.

You can download this new release from the Facebook Image-to-Email homepage. If you don't care to know more about the technical details, stop reading now.

Technical wrap-up: In previous versions, I was injecting JavaScript into the document and doing all of the processing of the images there. This is a pain, but because webpage JavaScript is not allowed to access the data of images from a different domain (and JavaScript running in the chrome couldn't seem to do it either), there wasn't much choice. At some point, Facebook made a change to their pages or the server that their images come from, and this method of parsing the images broke.

What I've done is this: instead of accessing the images directly, the extension now takes a screenshot of the entire page (allowed under the browser's security policies), locates the portions of the page that contain the e-mail address images, and parses them out entirely from the browser's chrome, a beautiful place with much looser security restrictions than a webpage. (I've also added character maps for "-" (hyphen) and the "r." sequence that wasn't being parsed properly.)

(Sidenote with relevance to current events: this extension is now a hop, skip, and a jump away from being able to be used to parse and download all of your friends' information, including e-mail addresses. If Scoble had only waited, he could have avoided this whole mess.)