CoScripter (formerly Koala) Extension for Firefox from IBM

In my Enterprise series, I mentioned an extension from IBM called Koala that could be used to automate business processes.

This extension has now been made available via alphaWorks Services as CoScripter.

From the web page:

CoScripter is a system for capturing, sharing, and automating tasks on the Web. CoScripter scripts contain human-readable instructions for completing Web-based processes, such as changing your mailing address or searching for real estate. If the CoScripter plug-in for Firefox is installed, CoScripter can step through scripts with you, showing you how to perform the task, step by step. CoScripter can also run scripts automatically, eliminating repetitive or mundane tasks for the user.

There's a more detailed post about it at Luis Suarez's blog.

Go check it out. It's pretty cool.

Operator 0.8 is available

Operator 0.8 is now available from

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.

Third Firefox Enterprise Working Group Call

We’re planning our third call for Wednesday, August 22th at 10:00am Pacific, 1:00pm Eastern, 17:00 UTC. Here’s the meeting details:

  • 650-903-0800 or 650-215-1282 x91 Conf# 280 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 280 (US)
  • IRC - - #ewg

The theme is "Extensions." We're going to talk about how folks are using extensions in their organizations.

Please check out the EWG Wiki page for more information.

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.

Firefox Enterprise Working Group Meeting Coming Up

We’re planning our second call for Wednesday, August 8th at 10:00am Pacific, 1:00pm Eastern, 17:00 UTC. Here’s the meeting details:

  • 650-903-0800 or 650-215-1282 x91 Conf# 280 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 280 (US)
  • IRC - - #ewg

The theme is "Wishlist." We are hoping to get people to talk about what they think is missing from Firefox to make it work better for enterprises and institutions. Please feel free to update the Wishlist page before the call.

You can also take a look at the Firefox Enteprise Working Group wiki.

Note we will be recording this call so you can listen later if you can't attend.

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.

Manually Repackaging the Firefox Installer on Windows

One of the things I've alluded to in a few posts but failed to actually post is how to manually repackage a Firefox 2 installer on Windows. This post will remedy that situation.

We have documented at least three different cases where we would need to manually repackage the installer (cases where the Firefox Release Repackager won't work). These cases included packaging more than two extensions, needing to update the list of files that are removed by the installer and most recently, replacing setup.exe with a rebranded version. Let's talk about how we can manually repackage the installer.

First thing is to download the installer we want to repackage and unzip it using 7-Zip. For our example, we'll use Firefox Create a directory and then download Firefox Setup Execute the following command to extract the contents of the file:

7z x "Firefox Setup"

This will unpack the contents into the directory. After you have unpacked the file, move "Firefox Setup" into a different directory or remove it.

Next we make the updates we want to make, such as replacing setup.exe, changing removed-files.log or adding additional extensions. After we've made our changes, we want to repackage the files into a 7-Zip archive.

7z a -r -t7z app.7z -mx -m0=BCJ2 -m1=LZMA:d24 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3

This will create a file called app.7z that contains our files. Note that I can't tell you what all those parameters do - those are copied directly from the Firefox build scripts.

For the next step, we'll need to download a file and create a file. We need to download 7zSD.sfx which is the self-extracting installer. You can download it here. Then we need to create a file called app.tag that looks like this:

Title="Our New Name"

app.tag is used to tell the self extracting installer what file to run after the files are extracted. I'm not sure what "Title" is used for.

Now that we have all the files, we can actually create the installer:

copy /B 7zSD.sfx+app.tag+app.7z our_new_installer.exe

The "/B" is very important! It tells copy that these are binary files so it doesn't add extra characters to the files.

And that's it. We now have a self extracting installer with our customizations.

Firefox Enterprise Working Group Call Reminder

Just a reminder that we will be having our first Firefox Enterprise Working Group call tomorrow. The theme is "experience." Here's the meeting details:

Wednesday, July 25 at 10:00am Pacific, 1:00pm Eastern, 17:00 UTC.

Call-in information:

  • 650-903-0800 or 650-215-1282 x91 Conf# 280 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 280 (US)

We'll also have a "backchannel" for people to talk on irc if they want - - #ewg

Please don't feel like you need to be involved in an "enterprise" in order to participate. We're expecting folks involved in enterprises, educational institutions, and more.

Please update the wiki if you can with your participation. As pointed out earlier, you can be as anonymous as you want. The wiki is at

We look forward to your participation!

Operator and hAudio

One of the cool things that you can do with Operator is experiment with new microformats. The folks at Digital Bazaar and others have been working on an hAudio microformat and David Lehn has created some experimental Operator User Scripts for you to try out. hAudio.js contains the primary microformat. money.js is used to allow actions on currencies.

You can try out these microformats on the site Bitmunk, as well as WebOrganics

Rebranding the Firefox Installer

Updated files for Firefox are available here.

One of the other extensions I've written is the Rebrand extension. This extension allows you to rebrand Firefox to whatever you want just by installing an extension. A question I often get asked by people that use this extension is whether or not it is possible to rebrand the installer. This post will provide instructions on how to rebrand the Firefox 2 installer. In particular, we are going to create a new customized setup.exe that can be used with the instructions in this post. Basically you unpack the installer and simply replace setup.exe with the new one we will create.

The installer for Firefox 2 is based on the Nullsoft Scriptable Install System so first we need to install NSIS.

To actually customize the installer, we need the original files that were used to create the installer. I have packaged the files from a non branded Firefox for you. That means the files show "Bon Echo" instead of "Firefox" and the images are just a globe (no Firefox). You can download them here. After you download the package, unzip it into a directory and we're ready to go.

Here are the files we'll need to change.

  • license.rtf - This is the license agreement that must be agreed to by the user during the install. You'll need to replace it with your own RTF file containing a license. If you do not want or need the user to agree to a license agreement, you can comment out the line:

    !insertmacro MUI_PAGE_LICENSE license.rtf

    in installer.nsi.
  • branding.nsi - This file contains most of the text changes you'll make, including name of your browser and your company.
  • wizHeader.bmp - This image is at the top of right of every page in the installer.
  • wizWatermark.bmp - This image is on the first page of the installer.
  • defines.nsi - This file contains some version specific strings, so it will need to be changed as you move to different versions of the Firefox source code. It will also need to be changed if you change the name of the executable.
  • version.nsh - Unfortunately the installer folks didn't do a good job of keeping branding strings just in branding.nsi, so there are a few miscellaneous things you might want to change here.

Now that we've customized the files, it's time to build the installer. To do this, we'll use one of the tools that came with NSIS, makensis.exe.

makensis installer.nsi

If we did things correctly, the result of this command should be a new setup.exe that contains all of our customizations. You can test this immediately by just running setup.exe and seeing if it contains your customizations.

There's not a quick and easy way to integrate this setup.exe into the Firefox packaging, so for now my recommendation is to unpack a Firefox 2 installer using 7-Zip and simply replace setup.exe with the new one you just created. Once I get the information on manually repackaging Firefox, I'll post it.

Note that this is a new process I've just put together, so please let me know if I've missed anything or if you have problems.