Dabble DB

The Dabble Blog

Archives: July 2005

« May 2005 · October 2005 »

Logan Omnibus

I’m about a month late in posting this (bad blogger, no cookie), but Patrick Logan had a great series of short posts on the so-called long tail of software.

One of the gems he digs up is this paper on OVAL, a system designed to be “a radically tailorable tool for cooperative work”. It provides a few basic building blocks (objects, views, agents, links) “out of which a wide variety of integrated information management and collaboration applications can be constructed by end users”. It would be hard to come up with a better description of the kind of tool we’re interested in at Smallthought: “radically tailorable” is so good I’ve made it part of the tagline of this blog. And it’s refreshing to see the emphasis on cooperation and collaboration, rather than on “personal productivity”, especially in a paper written well before the kind of ubiquitous network connectivity we enjoy today. On the one hand, it’s deeply saddening that this kind of work gets lost in the noise of “progress” in computing. Alan Kay likes to remind us of how frequently this happens:

This stuff is better than anything […] today. We could implement it from the papers they wrote then, but no one reads the papers that were written in the 60s. (as quoted by Cory Doctorow)

On the other hand, it’s exciting to think about how to apply these ideas now. What would OVAL look like if reinvented for today’s web?

One starting point might be the wiki. Wikis are the true end-user web, accessible to everyone not just in that they are easy to edit, but also in that they are easy to understand. One company that is trying to extend the simple customizablity of wikis to OVAL-like applications is JotSpot. Unfortunately, I’m not convinced they’ve been successful in maintaining the simplicity. Their developer blog is full of tips like this one, on adding RSS and other feeds:

I’m talking easily as in a handful of lines of script.

Easily, it turns out, means something like this:

<jot:column header=\"Topic\">
  <jot:if test=\"${it/sys/form = '/ForumReplyForm'}\">
    <jot:then>
      [[wiki:${it/path}][${it/parent/ForumTopicForm/forumTopicName}]]
    </jot:then>
    <jot:else>
      [[wiki:${it/path}][${it/ForumTopicForm/forumTopicName}]]
    </jot:else>
  </jot:if>
</jot:column>

As Patrick says, decidedly unwiki-like. Wikis are good because they’re simple; trying to scale that up to more complex applications is at best extremely difficult, and at worst a logical impossibility.

But just as wikis are hard to scale up, so are relational databases hard to scale down. Modelling in third normal form just isn’t going to work for most end users, even if you offer a friendly web-based interface to do it with. To quote, via Patrick, David Kroenke of the University of Washington:

During the next hour or so, I walked her through the process of creating five normalized tables - Customer, Salesperson, Invoice, Line Item, and Item - and hooking them together with foreign keys. Then I explained how to rejoin them to get her sales order back. Long into the call, she asked, “Why am I doing this?”…

After 35 years of computer science and numerous iterations of Moore’s 18-month cycles, isn’t there a better way?

We’re working on it.

« May 2005 · October 2005 »