Sunday, 2006-02-26; 05:05:00

You know what I really hate? (More than VueScan? :P ) ... when different products use entirely different formats to represent the same objects, like bookmark files or emoticon sets. If you're an astute reader, you may deduce why I specifically mentioned those two examples. You know what I really, really hate? (More than VueScan? :rolleyes: ) ... why I take it upon myself to create programs that exchange between such formats, so that the users of each program can utilize the resources that have been created with the others.

I have two such programs, Safari Bookmark Exporter, and Emotimaker. Safari Bookmark Exporter exchanges between bookmark formats for web browsers (well, to be accurate, it only goes in one direction: it exports to all those bookmark formats, and only reads Safari bookmarks, but whatever). Emotimaker, however, does have to be able to both read and write the various formats for emoticonsets out there. Version 1.0.2 currently handles five such formats for the following five programs: Adium, Proteus, Fire, iChat, and Colloquy.

The problem is, even the same product can sometimes have different formats for the same thing. Case in point: Adium and Proteus. It seems that in the course of updating Emotimaker, both Adium and Proteus have changed their formats -- and I didn't even notice. (Proteus' change wasn't so drastic, but Adium's file format was a complete change.) That means that not only do I have to support the new formats, I have to support the OLD formats as well -- at least reading the old formats, anyway. So that means that I have to support reading 7 different file formats, and support writing to 5. Blah. It's annoying.

I've actually ranted previously on this very same topic. I was seething about how the bookmark locations for the various Mac web browsers coming out of The Mozilla Foundation were changing rapidly. Firefox had changed names twice (which means it changed locations twice), and Chimera also changed names to Camino, but then later changed bookmarks format. In Safari Bookmark Exporter, I have to do some weird contortions to figure out which location is the one that is currently being used for bookmarks. But since Safari Bookmark Exporter seems to be my most popular product by far, it's better if I do everything right rather than simply support only the latest browser format/location.

Sometimes I wish developers who make IM clients would just get together and decide on a similar format. That would make everything nice and easy (and put me out of a job making some of my products, but whatever). But, seeing as how the web itself has gone through the whole standards mess anyway, I guess I can't say it's surprising that the same thing happens for application developers. You just kind of think of the easiest/fastest way to do what you want, and you may not think about other developers or even the future (which explains why the same product can change format for its data). It's hard to be forward-looking when creating file formats. (I'm probably guilty of the same thing: Memory Usage Getter creates logs for storing memory/CPU usage data, and I haven't even once looked at the logs generated from any other programs. Emotimaker's native file format, however, is identical to iChat's, except for the fact that it's self-contained whereas iChat's emoticon files aren't.)

Such is what I do, for some odd reason. I guess doing so gives me a better appreciation of standards. :P So in case you're wondering, Emotimaker 1.0.3 will soon be coming out that supports the newer emoticon formats for both Adium and Proteus. It'll also support animated icons where applicable, which is something I think that a lot of people wanted (well, the people that use Emotimaker, anyway). If you happen to stumble upon this entry, are there any other emoticon formats out there that I should support? I seem to be in the mood...

Technological Supernova   Unfiled   Older   Newer   Post a Comment