New Polar Rose Firefox Extension
Today SIME07 starts, the Scandinavian Interactive Media Event. Polar Rose is nominated for Best Technical Innovation. This is pretty exciting for us because we’ve all put a lot of energy in our products and services for many months. We’ll see what happens at the SIME Awards gala dinner on Thursday.
We’re doing a event photo gallery for SIME07, where you can see the faces of attendees. This works by periodically processing tagged pictures from Flickr and running them through our image processing web services that I’ve been working on. It is a really nice example of mashing up two simple APIs to get great results.
This also seemed like a good opportunity for us to release our brand new Firefox extension to our beta users and SIME07 attendees. The new extension is a complete rewrite and it is a huge step forward in usability and stability.
We had previously contracted an external company to build this for us, but it turned out to be a bad option. An external company will just never put the same kind of love and perfection in your product as you would do yourself.
So, we redid the whole Firefox extension in-house. After more than half a year of painful progress one of my colleagues took on this project and delivered the current plugin in less than two months. Even though Firefox extension development was completely new to him. The new release works much better and it has Polar Rose written all over it with it’s slick user interface. I think it is a good example of putting passion in your own products and a lesson of why not to outsource core components to third parties that don’t share the same values as you.
If you have a Polar Rose beta account then you can download the plugin from the web site or simply use the auto-update mechanism in Firefox if you have an older version already installed.
When the Polar Rose Firefox extension is enabled, it co-browses with you and asks Polar Rose to run face detection on all public images from web pages that you visit. The extension then annotates the found faces with a little rose. When you click the rose, a menu appears where you can add a name to the face or to see the names that other people already added.
If you for example go to this IMDB page of Austin Powers then you will see that the following happens.
![]() |
![]() |
On the left you see an annotated face and on the right you see how a the rose turns into a popup menu and a marker box appears around the face when you hover over the rose.
When you click the rose, the following menu appears, where you can edit the name or see the names that were already added to the names.
![]() |
![]() |
On the left you see the menu for an unnamed person. On the right you can see that after adding a name the rose turns red and the menu shows in this case the one name that I added.
I developed most of the server side part of this plugin: a Jetty-based Cometd/Bayeux service that deals with receiving image processing requests and pushing back the results (faces) to the client.
The server side uses the Spring/Bayeux integration project, which I have open sourced and put on Google Code. It allows you to very quickly put Cometd/Bayeux applications together.
The framework is Java based and uses Spring to glue together Bayeux concepts and your own business logic. It currently only works with Jetty. The documentation is a little scarce at the moment but I will work to improve that soon and dedicate a more complete blog entry to it. Soon. I promise!





Modified

David Davis says:
Added on November 19th, 2007 at 6:04 pmVery cool!