Thanks to our active user community for finding a defect that we couldn't reproduce ... and apologies to everyone that had trouble publishing a visualization for the last month or so.
The Whole Story...
Most Many Eyes charts are Java applets that rely on users having the latest versions of Java installed on their machines. If users don't have the right version of Java installed, Many Eyes visualizations won't ever display for them. If you look at this thread, you'll see that we have provided a link to download the latest version of Java.
A few weeks ago we started getting reports from users saying they could see the visualizations, but they couldn't publish one themselves. When they tried to "Publish", the Java progress indicator would spin and spin happily for as long as the user waited.
Problem 1: We knew if users could see the visualizations, they had Java installed - that couldn't be the problem.
Several good users provided details about their environments (what browser they use on what operating system) and we recreated their exact environments in our lab so we could test and reproduce their experience. Then we turned on some fancy logging software so that we could detect the exact cause.
Problem 2: We were never able to reproduce it in our test environment. Not even once.
So we asked one of our good users that experienced this defect to allow us to remotely watch what happened when he tried to publish. AHA! He could reproduce it every time. So we asked him to install some logging software so we could see exactly what happened. The solution was at hand! We could smell success.
Problem 3: Whenever he tried publishing with the logging software running, the defect went away! When he stopped logging, the defect was back.
We had a fix! But sadly it would be too much to ask every user to install our logging software. :-)
The smell of success drifted away, and all we could smell was each other.
After a lot of scouring software development websites and forums, we learned that Sun had recently implemented some changes to the Java runtime. The goal of the changes was to permit an applet to use content from more than one domain - something that happens a lot these days due to sites like Flickr, Youtube, Twitter and Facebook.
It turns out that these recent changes by Sun block certain interactions between a Java applet and the source domain where the applet is being served, but only if the user is outside the domain as well. This explained why our testers and developers could never replicate the problem ... we were testing from within the same domain as the site, ibm.com. Our users, of course, are in a different domain, so they would experience the problem every time if they had the latest versions of Java.
So as of December 3rd, we introduced a small little tweak to the site that will fix it all. For everyone.
Problem 5: We still have no idea why our logging software fixed the problem. It makes no sense!!
In summary, thanks for telling us you were having trouble. We couldn't have done it without you.
Now back to staring at our logging code… :-)