Log in

No account? Create an account
Previous Entry Share Next Entry
Two Great Tastes
(LJ is borked, so I'm going to try posting this via DW and see if it crossposts properly.)

I smell a project coming on.

For quite a long time now, I've had the ProWiki technology sitting there, gathering dust. For those who are new to this story, ProWiki is a wiki system that I wrote the better part of 10 years ago now. In one sense, it's quite primitive: it's based on UseMod, one of the very first wiki codebases, is written in mediocre Perl 4, and looks extremely plain. But at its heart, it is quite radical, because it's actually an object-oriented database masquerading as a wiki. Each page is treated as an object and can have properties; there's a concept of inheritance so that you can have well-defined semantics; there's even a horrible but effective query language so that one page's content can actually be a query into content defined on other pages. The result is that it's excellent for certain use cases -- in particular, for LARP writing, which is what I developed it for in the first place.

The reality, though, is that ProWiki is way too damned primitive in many ways, and the name (which stands for "property-based wiki") steps on one that an unrelated group turns out to be using. And the idea of putting properties on pages has been used in a few other systems -- to a limited degree in Twiki, and to a much better degree in the sadly-unstable XWiki. None of these really hum for me, though, so I've long been wanting to start again from scratch. That project has long been known as Querki (for "queryable wiki"). I have the domain sitting there, and pretty extensive design and requirement notes. I haven't done anything with it, though, because building websites is such a pain in the ass.

But now along comes Lift, the Scala web framework. I know Rails well enough to know that it is still a headache, but Lift is terribly appealing: as is usual for the Scala community, they've stepped back and really thought things through. Today I stumbled across the Seven Things page, which underscores this: it's simply a list of common web patterns that are a pain in the ass to implement in most frameworks, but dead-easy in Lift -- most of which are crucial for Querki.

So I think I'm sold. I've been looking for a good excuse to write a serious project in Scala ever since CommYou got aborted in mid-implementation, and this looks like a fine opportunity. Not that I have any free time at all, mind, but I think I need to start playing with this, because it looks like altogether too much fun...

  • 1
Heh, it sounds like I stumbled onto a lot of the same ideas in Bazki/Gameki that you had in ProWiki (object-oriented inheritance and wiki pages as property-based objects), with similar motivation (writing/running LARPs). http://bazki.mit.edu/, though the website is minimal and the code isn't quite in a state for someone other than me to have a good time wrestling with.

Not to mention that trying to access the one public implementation is throwing Python errors.

But yes -- it sounds like it's starting from very similar motivations, and coming to very similar conclusions about how to deal with them...

Yeah, that's what I get for modifying my database schema. Or, more like, using the same location for bleeding-edge development and my one public site. That said, it's not publicly editable, so you wouldn't be able to tell anything interesting about Bazki by looking at it.

I will put up a public sandbox at some point, but right now I'm trying to get things into sufficiently-good shape that I can convince the overly-large GM team for my latest 10-day to use it, so that's top priority.

  • 1