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
(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...
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.