Or is Konfabulator suppose to be Cumfabulous?
Sorry. It's just that every new application platform must be evaluated with respect to its applicability to porn first and foremost. Komfabulator is a platform for simple applications (a.k.a. widgets) that adds functionality to the MacOS X desktop. A widget is composed of various objects (windows, images, text labels, etc.) defined via XML. Their properties are manipulated programmatically via Javascript snippets triggered by GUI events, such as a click or on initial load. The Javascript engine has been extended to allow external Applescript and shell script calls for extra control. So the weather widget can fetch a URL from weather.com, then parse the page and load a different background icon into an image object depending on the weather, and display the temperature in a text object. A click on the image opens the webpage containing the detailed forecast in the browser, while a click on the text jumps to the next city on the user-defined list.
Unfortunately, the widgets that come with Komfabulator were flat out weak. The weather widget only displays data from one city. The picture frame widget doesn't even let you choose the picture folder (it defaults to ~/Pictures). The Calendar and ToDo widgets don't integrate with iCal at all. They give people a bad first impression of the program. Add the $25 shareware fee, and people are already dismissing it as overpriced and useless. It's true that there are already vastly superior apps for desktop weather or network monitoring, and who the hell needs another desktop clock anyway? On the other hand, the idiots don't realize that they're not paying $25 for a bunch of pretty but underpowered widgets, but for a Javascript GUI runtime package that allows one to easily extend the power of the built-in widgets, or trivially build new ones from scratch. After a little hacking (with the Konfabulator reference at my side), I was able to add selectable folders to the Picture Frame widget, and add multiple cities (with automatic or clickable advance through the list) to the Weather Display widget.
I'm not rushing out to register the program, though. Although it's stupid to dis Konfabulator based the lame initial widgets, some of that lameness is due to weaknesses in the scripting engine. The Javascript engine doesn't have a very rich built-in DOM, so you can't get direct access to the system except for a few specialized areas (e.g. Airport wireless network and battery status) that seem to be tacked on for the demo widgets. This means that most useful things have to be done as external calls via Applescript or shell commands. So you munge together a long string for your external call (talk about your spaghetti code), and then parse the long string returned by the script. Frankly, that sucks. Konfabulator does have a URL fetching method. However, considering that it has an XML parser (probably just a version of expat) built-in, it's inexcusable that it can't easily parse HTML or RSS. If I wanted to scrape webpages via regular expressions, I would've stuck with sed and awk (yeah, I know I should learn Perl). This means that web page parsing is not robust, and people are building different widgets to read each site and its RSS feed, in order to code around each site's idiosyncrasies. The event model isn't very complete, either. How about a double-click trigger? And no keyboard events at all?
The interface has issues, too. Each widget is basically a collection of bitmap objects, with very little access to MacOS GUI elements except for simple dialog boxes. That's fine if you're a Photoshop jockey, but it can be a pain in the ass when you just want a plain old button, and it certainly doesn't do anyting for interface consistency. It's more like a Linux look, actually, i.e. I'll make it look my way and fuck everything else. People are already complaining about the large sizes of many widgets, and there's no easy way to change them short of opening the XML file and futzing with all the size and layout parameters one by one.
Oh well, it's good enough to satisfy my New Toy urges for now. Hopefully they'll get a better version out before my short attention span runs out. Of course, if they do add all the requested features, the whole thing will probably get so complicated that I'll just give up on it anyway. So don't listen to what I say.
Posted by mikewang on 11:14 AM