Archive - January, 2007

upcoming.org microformats need some loving

Moving right along…

One of the ways that I verify that Operator is working correctly is by comparing against other sites that do similar functions. For instance, I might go to eventful.com or upcoming.org and compare their Yahoo! or Google calendar to mine.

One of the things I have discovered is that upcoming.org’s use of microformats needs some serious help. Let’s use this event to demonstrate the various problems.

Problem 1 – Missing information in the microformat

Notice that on the page it indicates the event is from 11AM to 5PM. If you add this event to Yahoo! with Operator, you won’t get an end date. If you use the Yahoo! calendar functionality built in to upcoming.org, you will. The end date (dtend) is not specified in the microformat so I can’t get it. Here’s another one. Notice that there is no phone number on this page at all. But if you add it to your Yahoo! calendar, you’ll see a phone number. Also, country information is missing from all pages, even though it is used by upcoming.org’s Outlook export feature.

Problem 2 – Extra information in the description

You might have noticed when you added that event via Yahoo! calendar, that the word “Description” appeared at the top of the description. This doesn’t happen when you add the event using upcoming.org’s Yahoo! functionality. This is because upcoming.org has tagged their description incorrectly. Here’s how they tag them:

<div class="description">
<div class="small">Description</div>
Text of the description
</div>

The problem here is that the word “Description” is contained in the description. The correct tagging shold be:

<div class="small">Description</div>
<div class="description">
Text of the description
</div>

Or something similar. They also do this with category. While this might not seem like a big problem, wait until you see what it does with url…

Problem 3 – URLs are tagged completely wrong

On that upcoming.org page, you might try selecting the Web Page option from the event in Operator and see what happens (assuming you are in microformats mode and not action mode). Notice you’ll get an error that the URL can’t be loaded. This is because the URLs are tagged completely wrong. Here’s the URL for that page:

<div class="url">
<div class="small">Homepage<div> <a href="http://blog.coworking.info">http://blog.coworking.info</a>
</div>

At first glance, this just looks like the problem 2, but it turns out to be much worse in this case. If the url class is not specified explicitly on an anchor tag (which it isn’t in this case), the specification says to use the entire text content of the url class as the URL. In this case, that would be Homepagehttp://blog.coworking.info. So this turns out to actually break functionality in operator.

So please upcoming.org, fix your bugs. You’re making Operator look bad :)

Fixing a bad 0.6 install

OK, so if you were one of the unlucky people that got 0.6 with the migration problem, you probably have nothing on your Operator toolbar.

The problem is that it got half migrated, so because we see some preferences, we don’t recreate the default set.

Here’s how to fix it:

Type about:config in the URL bar and press enter.

Type operator in the filter at the top.

Delete (right click and select reset) ALL preferences that start with extensions.operator.

Once you’ve done this, close and restart the browser and you should get the default set.

Again, my apologies.

Operator 0.6.1 is available

Let’s try this again without the migration bug…

Operator 0.6.1 is available from addons.mozilla.org.

Here’s what’s new in this release:

  • Performance Improvements – I’ve done a few things here. The main thing is that I was going through the document’s DOM one time for each microformat. I’ve reduced that to one time for all microformats, and I also cache the list of microformats as best I can (there’s more work to be done here. I’ve also modified it so that I don’t build any menus until the icons are actually clicked. In addition, I removed the code tehat did a reverse lookup on geos to get the address. This was causing a MAJOR performance problem on pages with geo tags. I think this is a deficiency in the geo spec – I wish they had a way to specify a name for the geo on the geo tag.
  • User Interface – I’ve added both a toolbar button and a status bar icon that contain all the Operator functionality.
  • Handlers – I’ve made it so that handlers can indicate that they require data in a microformat. If that data is not there, the handler won’t appear. In addition I’ve added basic support for 30 Boxes. If any 30 Boxes developers are out there, please feel free to contact me so we can discuss why I can’t make 30 Boxes work as good as Yahoo or Google Calendar. I’ve also added support for Yedda.
  • Microformats – I’ve added support for hResume. It’s not there by default, so if you want to see it, you’ll have to add it using the Microformats tab in Options.
  • Debug – I’ve modified the debug dialogs so that they now display in a readonly text area that can be copied to the clipboard. They are also formatted better.
  • Tags – I’ve improved the parsing to be more compliant with the spec for valid/invalid tags. You’ll notice the tags on my blog don’t display because they are invalid. (Thanks blogger!)
  • Browsers – I’ve verified that Operator works on Flock and modified the install.rdf to support Flock
  • hCard – I’ve added support for the “hCard reference via object.”

I hope this version addresses some of the concerns people had about the Operator UI as well as performance. Please give me any feedback you have!

FYI, for the next release I’ll be working on:

  • Script management
  • Missing elements in certain microformats
  • Customizing how URLs are opened
  • Ability to save vcards and icals, not just export them

Enjoy!

Operator 0.6 pulled temporarily

I’ve pulled 0.6 from addons temporarily.

Please don’t upgrade if you haven’t.

I’m working on an update with the migration fix.

My apologies.

Operator 0.6 is available

Operator 0.6 is available from addons.mozilla.org.

Here’s what’s new in this release:

  • Performance Improvements – I’ve done a few things here. The main thing is that I was going through the document’s DOM one time for each microformat. I’ve reduced that to one time for all microformats, and I also cache the list of microformats as best I can (there’s more work to be done here. I’ve also modified it so that I don’t build any menus until the icons are actually clicked. In addition, I removed the code tehat did a reverse lookup on geos to get the address. This was causing a MAJOR performance problem on pages with geo tags. I think this is a deficiency in the geo spec – I wish they had a way to specify a name for the geo on the geo tag.
  • User Interface – I’ve added both a toolbar button and a status bar icon that contain all the Operator functionality.
  • Handlers – I’ve made it so that handlers can indicate that they require data in a microformat. If that data is not there, the handler won’t appear. In addition I’ve added basic support for 30 Boxes. If any 30 Boxes developers are out there, please feel free to contact me so we can discuss why I can’t make 30 Boxes work as good as Yahoo or Google Calendar. I’ve also added support for Yedda.
  • Microformats – I’ve added support for hResume. It’s not there by default, so if you want to see it, you’ll have to add it using the Microformats tab in Options.
  • Debug – I’ve modified the debug dialogs so that they now display in a readonly text area that can be copied to the clipboard. They are also formatted better.
  • Tags – I’ve improved the parsing to be more compliant with the spec for valid/invalid tags. You’ll notice the tags on my blog don’t display because they are invalid. (Thanks blogger!)
  • Browsers – I’ve verified that Operator works on Flock and modified the install.rdf to support Flock
  • hCard – I’ve added support for the “hCard reference via object.”

I hope this version addresses some of the concerns people had about the Operator UI as well as performance. Please give me any feedback you have!

FYI, for the next release I’ll be working on:

  • Script management
  • Missing elements in certain microformats
  • Customizing how URLs are opened
  • Ability to save vcards and icals, not just export them

Enjoy!

Broken rel-tag implementations

One of the things I have been struggling with in Operator is whether or not to allow for invalid microformats when I can detect the problem and fix it. After much soul searching, I have decided the answer is no. And I will take this opportunity to discuss in particular the tag problems I have found.

The culprits I have found mainly seem to be blog apps. Take my blog for instance, which uses Blogger. If you are using Operator 0.5, you’ll see that the tags for this page are “firefox.html,” “operator.html” and “microformats.html.” All invalid. In the source of the page, you will see this:

<a rel='tag' href="http://www.kaply.com/weblog/labels/firefox.html">firefox</a>

The problem is that blogger is believing that the tag is the textContent of the anchor, not the last segment of the URL. To quote the rel-tag specification:

the last segment of the path portion of the URI (after the final “/” character) contains the tag value

WordPress also has a problem which can be seen at http://microformatique.com/ if you turn on debug mode in Operator.

So what is my plan then? I’m going to work on the detection in Operator to find the invalid rel-tags and simply not display them.

And hopefully some developers will go fix their implementations.

Operator 0.6

I’m putting the finishing touches on Operator 0.6. Here’s what you can expect (update in bold):

  • Performance Improvements – I’ve done a few things here. The main thing is that I was going through the document’s DOM one time for each microformat. I’ve reduced that to one time for all microformats. I’ve also modified it so that I don’t build any menus until the icons are actually clicked. In addition, I removed the code that did a reverse lookup on geos to get the address. This was causing a MAJOR performance problem on pages with geo tags. I think this is a deficiency in the geo spec – I wish they had a way to specify a name for the geo on the geo tag.
  • User Interface – I’ve added both a toolbar button and a status bar icon that contain all the Operator functionality.
  • Handlers – I’ve made it so that handlers can indicate that they require data in a microformat. If that data is not there, the handler won’t appear. In addition I’ve added basic support for 30 Boxes. If any 30 Boxes developers are out there, please feel free to contact me so we can discuss why I can’t make 30 Boxes work as good as Yahoo or Google Calendar. I’ve also added support for Yedda.
  • Microformats – I’ve added support for hResume.
  • Debug – I’ve modified the debug dialogs so that they now display in a readonly text area that can be copied to the clipboard. They are also formatted better.
  • Tags – I’m improving the parsing to be more compliant with the spec for valid/invalid tags.
  • Browsers – I’ve made it so the extension will work on Flock (and I’ve done some basic testing there

I’m targeting January 3rd for this release, assuming I can get performance where I want it.

Page 2 of 2«12