some fubared brains
I'm winding up an intensive development cycle with the last few days of clew. Ostensibly clew is a PHP-based mailing list manager and web forum engine, for use by my favorite geek fraternity, NYPHP. The goal is something you can replace mailman with.
But this is February. And you know what happens in February, right? I go just a little bit nuts, which is why clew has morphed into a general purpose noding and theading swiss army knife.
Why node and thread? Well, here's the thing. It's easy to amass a collection of nodes, or "web resources" (which could even be pointers to web resources). What's tricky is mapping your way through them in an engaging manner.
Clew uses a nested set model to encode the relationships between nodes, so it's sort of optimized for an infinitely hierarchical structure, or at least a big tree with a million different resources in it.
We started by modelling a mailing list. In a list, you have three levels of nodes. You have the list, what clew calls a "named" node, for lack of any more specific property that sets it apart from any other node. Attached to the list are a number of threads, and attached to them are a number of reply nodes.
Each reply is on some strand of the thread that starts with the first child of a named node (the "threadhead") and continues around the tree encompassing all replies.
A typical message might have a thread size of 30 strands, and a good list interface would give you a digest of all the new threads since your last visit, and let you traverse them quickly with a minimum of effort.
By Psydeshow on February 19, 2004 at 1:06am