Operator 0.9 is available

NOTE: There is a problem with the zh-TW, hr-HR, cs-CZ, pt-BR and ru-RU translations. I’ll post a 0.9.1 when I get this worked out. Unfortunately this makes Operator 0.9 unusable in those languages because for some reason Babelzilla replaced the strings with blanks (not what I asked for).

Operator 0.9 is available. This was mainly done so I can get my t-shirt, although it has been overdue.

I’ve talked about what is in this release before, but to repeat:

This version includes:

  • Songbird support!
  • Fixes to make sure things work in Firefox 3
  • Menus no longer magically disappear on some pages
  • hCards supports nested menus to access actions (more logical than trying to use adr for multiple addresses)
  • adr is no longer on the menu by default (you can add it, but it has no default actions)
  • Nested microformats are now handled per the spec as best we can figure it out
  • Performance should be much better (and it has been in my experience)
  • If a microformat is not visible, it doesn’t appear in Operator (You can turn on a preference if you want to see all microformats)
  • Actions for MapQuest and Amazon.com
  • A new RDFa parser based on the new spec (pages will need to be updated)

Unfortunately, I don’t have more detail on the RDFa situation. Elias sent me a new parser, and I included it. Please bug him to know what needs to change on pages. And I apologize to the existing RDFa users out there that I have broken.

Also, there were some performance problems with the release candidate that were definitely addressed. Hopefully things should be speedy.


Operator 0.9g (Release Candidate) available

I’m making a release candidate for Operator available hoping that I can shake out any last bugs in it. It’s available here. Note the release candidate is English only. I have it on Babelzilla at this moment getting translated.

First the caveat – RDFa support is not baked in this version (as in RDFa the old way doesn’t work, and RDFa the new way doesn’t work). That’s mainly because the RDFa spec was in flux. I think it’s done now and hopefully we’ll have the RDFa parser before I release the official 0.9.

So what is going to be new in 0.9? Lots of bug fixes and improvements to general interpretation of how microformats work. I detailed this in a previous post, but here are some highlights:

  • Songbird support!
  • Fixes to make sure things work in Firefox 3
  • Menus no longer magically disappear on some pages
  • hCards supports nested menus to access actions (more logical than trying to use adr for multiple addresses)
  • Nested microformats are now handled per the spec as best we can figure it out
  • Performance should be much better (and it has been in my experience)

I hope some people will try this out and let me know how I did. I’m trying to get 0.9 out next week for SXSW. Thanks!

ONE MORE THING: If your microformat is hidden (via CSS or otherwise), it will no longer display in Operator by default! You need to turn on the “show hidden microformats” preferences. See this post.

Microformats and Web Services Redux

Earlier I made a comment about how I wished there was a better way to connect microformats to web services. I’d like to elaborate on that comment and see if I could get some discussion going around the subject. First let me summarize the problem. (Note that throughout this post I will use the term microformat, but all these problems hold true for RDF as well)

The problem is that there is no standard way (that I’ve found) to interact with various web services that deal with the types of data involved in microformats. Note that in some cases there are standard data interchange formats (like vCard and iCal), but the web services do not always accept these formats.

The way Operator solves this problem through the use of user scripts that implement actions. What these actions do is take the microformat and use the data to construct a URL (or even a POST request) that connects to the appropriate web service. For instance, if I want to add my hCard to to the Yahoo! address book, the URL might look something like this:


In this case, the user script has taken apart the microformat and then constructed a URL that emulates adding a Yahoo! Contact. In doing this, lots of code was involved because the Yahoo! Add Contact does not map completely to the data that was in the microformat (you can see that code in yahoo.js). (Folks might ask why I’m not using Yahoo! APIs – that’s mainly because I don’t want to mess with authentication keys and stuff – this is a web interface, so I’d rather just redirect to websites)

The problem with this code is that in order to express the mapping from a microformat to Yahoo!, I require a large chunk of code.

For Firefox 3, I want to provide some UI that connects microformat to web services, but I want that to be extendable by third parties. I want it to be similar to how feed readers work in Firefox 2 (see registerContentHandler). While my action architecture works in the context of Operator, I do not believe that it is robust enough to be a part of Firefox 3. So what I’m trying to find is some better way to describe the mapping between microformats and web services or possibly to create a new standard around interacting with these web services. It might be as simple as just encouraging all of the vendors to accept the upload of vCard and iCal. I don’t know. Here are some thoughts I (and others) have had.

Encourage people to support the submission of vCard and iCal in a standard way

The obvious thing to do here would be for services to allow the submission of vCards and iCals directly to their web services as a way to provide information to the services. 30 Boxes currently allows this, but unfortunately the iCal must be physically located on a web site, so I can’t send it to them. Other services that accept vCards use a POST mechanism that is difficult to emulate because it relies on lots of private data during the POST submission.

Server Data Broker

Setup up a web service that would essentially act as a data broker. Data could be given to this server in a standard way, and then the server would turn that data into a URL that could be used to redirect to the appropriate web service. In this way, the logic to turn the microformat data into a URL would be done on the server. The client would give some common data source to the server, telling the service where it wanted the data to be sent and the server would simply send the client a redirect URL.

OpenAction similar to OpenSearch

S. Sriram had an interesting thought in reply to my previous post. He thought about using something similar to OpenSearch where web services can have an XML description file that describes how to interact with their services and then we could use that file to determine how to map the microformat data to the web service.

Those are just a few ideas we’ve come up with. I’d love to hear any other ideas you might have…

Operator 0.8 is available

Operator 0.8 is now available from addons.mozilla.org.

One of the first things you’ll notice is that I changed the default view to be data formats instead of actions. I did this because I found this is what most people did anyway. If you disagree, you can go to Operator Options and switch back to options.
You’ll also notice that if you did any customizations, you lost them. Unfortunately I did some preference rewriting this time around and the migration was getting to be painful. It shouldn’t happen again.

Some of the new features in Operator 0.8 include:

  • RDFa support (courtesy of Elias Torres)
  • eRDF support (courtesy of Keith Alexander)
  • New user interface elements, including an icon on the location bar as well as a sidebar
  • New preferences including auto-hiding the toolbar
  • The address microformats has been split out so that actions can be more granular
  • Actions can now be associated with multiple types of data, so the Google Maps action, for instance, works with Addresses and Locations
  • Much better support for frames and iframes
  • Support for non HTML documents
  • When debugging microformats, Operator connects to Brian Suda’s X2V behind the scenes so you can compare results
  • Lots of bug fixes

I had to break user script compatibility with this release. Most user scripts have already been updated and can be found on the user script page. I also changed the location of user scripts, so old user scripts won’t conflict.

Finally, I’ve created a page specifically to talk about Operator. If I’ve missed anything, please let me know. And feel free to visit my weblog and take my poll about how you interact with Operator.

Have fun!

Special note to users of the 0.8 betas – you’ll need to go Options and delete “RDFa” and re add it as “RDF” to get RDF functionality back.

Latest Operator News

Operator 0.8 is getting very close. I’m trying to finalize some UI stuff, specifically for testing some stuff for Firefox 3. Stay tuned. In the mean time, here’s some random things I need to post.

Operator 0.8 is going to have support for eRDF. Because of this, I’m changing “RDFa” actions to simply be “RDF” actions. So anywhere you use “RDFa” in an action, please change it to “RDF” for 0.8 final compatibility.

If you are interested in writing actions, I created an advanced article on creating actions. This is a follow up to my basic article on creating actions

The latest user scripts will always be on the Operator User Scripts page. This will be the home for any user scripts I mention in my blog and will also have links to third party user scripts. If you find bugs in user scripts, check that page to see if the scripts have been updated. I’ll mark any updates to that page with “NEW.”

And speaking of user scripts, there are new user scripts from Dan Noble for mapping hCards and hCalendar with Google Earth, as well as a user script from Thorsten Panknin for the Mister Wong social bookmarking site.

Incidentall, if you are an extension developer and want to try using the new microformats code in Firefox 3, you can download Gran Paradiso Alpha 7 and then follow these instructions to try it out.

SIMILE Actions for Operator

So far, actions for Operator have focused on exporting data or connecting to an existing web service. Rosie Morales from MITRE has shown that actions can do much more interesting things, like actually create new views of the microformats by saving the data to a local file and displaying it. These actions are based on the Simile project.

Note these actions only work properly with Operator 0.8b.

The Simile Timeline action is an action that acts on all events on a web page. It creates a local file that contains a Simile Timeline representation of the data and then displays it.

The Exhibit Timeline action is an action that acts on all events on a web page. It creates a local file that contains a Exhibit Timeline representation of the data and then displays it.

The Exhibit action is an action that acts on all contacts on a web page or one contact on a web page. It creates a local file that contains a Exhibit representation of the data and then displays it.

I will be documenting how you can create an action that acts on all instances of a given microformat very soon.

Operator 0.8b is Available

I have made a beta of Operator 0.8 available. Continued thanks to Elias Torres for the RDFa support.

Operator 0.8b adds a much requested feature – an operator icon on the location bar. It’s not perfect yet, but it is there. Also, I updated the action API a little bit to allow for the naming of actions as well as having actions act on multiple properties in a microformat. For instance, in the past, the “Goto web page” action only worked for the first URL in an hCard. Now it will work for all the URLs.

The other big fix in this release was that there were cases where sorting/removing duplicates didn’t work correctly. For action developers, I added the ability to have multiple translations of an action in one action. I’ll document that soon.

All the caveats from Operator 0.8a apply, so please read them.

Please report bugs here.

Have fun.

New Actions for Operator 0.8

I know I’ve been slacking on posting information on how to create actions for Operator 0.8. I’ve been tweaking the API a little bit, so that’s why I’ve been hesitant. Operator 0.8 beta will be very soon, and then I’ll post a tutorial on creating actions.

In the mean time, I have been working with a few folks to get their actions working on Operator 0.8.

  • The Minimap Addon gives you a suite of built-in maps and mapping tools for your web browser. And it also supports integration with Operator.
  • Egon Willighagen is using RDFa combined with an Operator action to allow for searching PubChem from the Chemical Blogspace. More information is available in his post.
  • Søren Johannessen has updated his actions for the Danish Blogosphere for Operator 0.8. You can read about them and download them at microformats.dk.
  • Pelle Wessman has updated his actions for the Swedish Blogosphere for Operator 0.8. You can read about them and download them at http://pelle.vox.nu/.
  • Charl van Niekerk has created actions for the African Blogosphere for Operator 0.8. You can read about them and download them at http://blog.charlvn.za.net/.

And I’ve been adding/updating some of my user scripts. These include support for the license microformat, as well as some improvements to species.

Incidentally, the improvements to the action API will NOT break actions already written for Operator 0.8. The improvements include the ability to translate your actions into other languages, the ability to customize the name that appears for your action in the Operator dropdowns and the ability to have multiple items in the action menu for something that appears multiple times in a microformat. For instance, in the past, even if an hCard had multiple web pages, there was only one action that opened the first web page. Now an action can detect the multiple web pages and display unique action names for each of them.

Stay tuned!

Operator 0.8a is Available

I have made an alpha of Operator 0.8 available. Special thanks to Elias Torres for the RDFa support.

My primary goal with Operator 0.8a was to attempt to finalize APIs for both Operator and Firefox 3. What I actually ended up with is very similar to the APIs I created with the very first version of Operator. You can see the microformats API for Firefox 3 here (looking for feedback). I’ll be documenting the action and microformats API more completely in the next few days.

New features in this release include:

  • RDFa support (view only – there are no actions yet)
  • Unified actions architecture – actions are no longer specific to a microformat
  • Support for Address microformat to allow some actions (like map lookups) to be more granular.
  • Better support for iframes/frames/nested documents
  • Debug mode uses X2V for hCards and hCalendars
  • Support for non HTML documents
  • Bug fixes galore.

One feature I removed that I know people will complain about is the ability to have custom names for the actions. If I get enough complaints, I’ll put this back.

IMPORTANT NOTE: This release uses new preferences so it will wipe out your old prefs. This should be the last time that happens. I also changed the location of user scripts so it won’t pick up your old ones (they won’t work anyway).

If you want new user scripts, check out: http://www.kaply.com/weblog/operator-user-scripts/

If you have user scripts you want to quickly port to Operator 0.8, please send them to me and I’ll help.

Please report bugs here.

Have fun.

Where is the next version of Operator?

You might have heard from Elias Torres that we have RDFa working in Operator. You might also be wondering where that version is.

Basically I’ve been working very hard to finalize the APIs so that I can get things ready for Firefox 3. You can take a look at them here. The ironic part is that I’ve actually gone back to the way I wrote Operator the first time in terms of how microformats and actions are added to Operator. I’ll be documenting this soon. And if you wrote to any of my other APIs, I’ll work with you to move things to the new model.

So what do you have to look forward to in Operator 0.8a?

  • RDFa support
  • Unified action architecture (actions on the toolbar aren’t specific to microformats)
  • Support for non HTML documents
  • A final architecture for actions and microformats so people can start coding to it
  • Debug mode displays X2V output
  • Export All available in “Microformats mode”
  • Lots of bug fixes

Stay tuned. Just some fine tuning and we’re good to go.