sab39

... indistinguishable from magic
effing the ineffable since 1977
cmeScribble - coming soon!

cmeScribble - coming soon!

10/21/2005

Last night I came up with the seed of a way to implement some things in cmScribe (the CMS that I work on as a day job and happens to run my website too) that I've wanted to do for ages but not known how - and get a bunch more cool features that I never even thought of before for free. That was the good news. The bad news was that the ideas are a radical departure from the way cmScribe works now and would require an almost complete rewrite - only a few pieces of code could be salvaged anything like intact. It's taken us three years of team development to get cmScribe to where it is now - which is, in my not-entirely-unbiased opinion, a pretty good place in lots of ways - so the idea of throwing all that away and starting over based on a mad programmer's wild and unproven blue-sky ideas was probably not something I could sell to the boss ;)

(Basically, the entire architecture of cmScribe today revolves around building templates and pages out of building blocks that we call panels. The idea I had leaves no concept of a panel left at all, and templates and pages don't have any independent existence but just become particular ways of combining lower-level ideas...)

But I think I found a way to turn the bad news to my - and NetReach's, and maybe your - advantage. Because it does mean a complete rewrite, there's no need to use any existing cmScribe code to implement it. So I suggested to my boss that I'd be happy to work on this in my own time as a hobby project / technology testbed, and wouldn't it be cool to do it as an Open Source project? As a hobby project it wouldn't even attempt to provide the "enterprise" features that cmScribe does, but if it successfully proves the concept, it would also be possible to use it to rebuild those enterprise features and get a next-generation cmScribe. My boss agreed.

So without further ado, I give you...
cmeScribble

Well, actually, I don't, because all cmeScribble is right now is a logo, a pronunciation (see-me-scribble!) and some partly-formed ideas. There are parts of the design that are defined as being done "by magic". And while some incredibly rich and powerful scenarios are enabled by this architecture, I'm a little fuzzy on how to implement obscure things like, say, pages.

When I have some code (I've started, but I don't want to release until it can do something that at least gives a hint of the power to come) I'll put it online for people to try out. In the meantime I'll blog a bit about the process by which I arrived at the new design, where I think I'm going with it, and why you should care. Or at least give you enough information to decide that in fact you don't ;) As I write more about the ideas I have I'll also be interested in feedback on whether what I'm doing makes sense, whether there are important scenarios it misses, and what I could do to make you interested in using it.

Ok, at this point I'm announcing vaporware. Sorry; I'm excited about this and don't have the discipline to wait until it really works. Besides, I've noticed that when I see an announcement of a new project, if it's provided as a fait accompli with lots of code and documentation, I'm not terribly likely to invest the time to delve through all that to learn what it's all about. If someone on one of the planets I'm subscribed to introduces their project over a series of blog posts, though, I find myself learning quite a lot about the project - and maybe wanting to use it - without feeling like I've invested any time or effort at all (after all, reading blogs is what you do to avoid putting effort into something else). If I cmeScribble can benefit from that effect in others, everyone wins.

Oh, and I guess I have to say that it's very Web 2.0. I'm not sure what that means except that all the cool kids are doing it these days. As far as I can understand of what that particular meaningless buzzword means, though, it does actually fit.