Konfabulator Development Annoyances

Over the last few weeks, I wrote an Evolution Konfabulator Widget. It sits on your desktop and keeps you up to date with your continent.

Evolution Widget Beta

Konfabulator isn’t exactly developer friendly. Writing a widget isn’t exactly developer friendly. There were two main annoyances.

Firstly, Konfabulator invented their own dialect of XML. That means you get stuff which looks like this:


    <text name="scoredata">

        <color>#ffffff</color>

        <vOffset>130</vOffset>

        <hOffset>100</hOffset>

        <width>200</width>

        <hAlign>center</hAlign>

        <size>12</size>

        <onMouseDown>

            openURL("http://ev5.neondragon.net/rankings/continent");

        </onMouseDown>

        <zOrder>100</zOrder>

    </text>

This isn’t based on any other XML dialects as far as I know – it would have been a lot easier to use HTML and CSS. Konfabulator also uses Javascript but it does not use the DOM. There are strange ways of updating data, changing properties and grabbing and parsing files. I believe having used XHTML and CSS as a base would have been a much better choice as the learning curve isn’t as steep and anyone who has written a website could write a widget.

Documentation

Of course, having a new XML dialect and strange JavaScript code wouldn’t be bad if it’s well documented. The documentation sucks. It’s only available in a PDF file which are hard to navigate and hard to search. With an easily searchable, bookmarkable HTML documentation, this would greatly decrease the amount of time it takes to learn how to use Konfabulator. The documentation can also benefit from user comments. PHP is a great example of fantastic documentation and is probably one of the main (if not the main) reasons why it is so popular today.

Testing

I developed quite a nice way of easily testing Konfabulator widgets. By turning debug on in the widget, you get a nice window which allows you to reload the widget with a single click. I then wrote a build script which automatically “built” the widget from the source code. My build script is available in the SVN repository – you will need Winzip and Winzip command line add-on. It shouldn’t be too hard to adapt the script to use something like 7-Zip. I edit the files I want in Crimson Editor, launch the build script and then click on the reload widget button to test the changes.

Leave a Reply

Your email address will not be published. Required fields are marked *