I'm very interested in people who are making weblogging software. Or is it personal publishing software? Whatever. Joel is one. His new software, citydesk, is almost complete. He has a page explaining it titled what does citydesk do. I'm not knowledgable or bold enough to make such remarks, but I almost spit coffee out of my nose the other morning when I read Wes Felter's reply to Joel's rhetorical page title: "Looks like it creates URLs with lots of digits in them." My first version of the system we use here had an even more tortuous URL scheme. Every page was accessed through one script (draw.php3) to which you would pass a colon seperated address for the page. My page was at 0:1:14, and a subpage of mine would be at, say, 0:1:14:28. Comments several levels down would have very long strings for addresses (for examle: /draw.php3?global=0:1:14:28:3:2:18.) Not long after I started in with this system (late '99 I believe) I went to a Camworld blog bowl event at the local Bowlmor bowling lanes. I was too shy to really interact with anyone, but the one thing Cam said to me was "Oh yeah, digitalmediatree, I looked at that - what's with the funky backend?" I knew he was talking about those weird URLs. During the next rewrite I made it a top priority to get rid of all funky URLs. And I think for the most part I was sucessful. Anyway, back to Joel's Citydesk. I was interested to hear him comment on comments. My own discussion software does not have threading. "Threading" is technical jargon for a discussion feature where different people can branch in different directions by replying to replies. You end up with a tree of conversation. Most forum software has this feature and some people were rather angry that mine doesn't.I've been thinking a lot about threading too. When I first added it here it was by far the most complex thing I had ever built. I had to use a recursive function, which to a non-programmer like me was a bit akin to finding a powerful magic spell. And it took me so long to discover this incantation that once I got it working I didn't want to take it out. "Hey look at this - threading!" But I think I agree with Joel in prefering non-threading discussions, although maybe for different reasons. In my system every page has an entry in a directory table in the database. The directory table holds information about where a page is in the (virtual) file hierarchy, as well as what kind of page it is. Right now there are 3,535 pages in the directory of this site. But 3,391 of those pages are comment pages, while only 144 are "real" pages. Threading (at least the way I have implemented it) takes a big toll in terms of entries in the database. Every post creates at least one comment page, but then because of threading every comment creates another page as well. Without threading there would only be one additional page for each top level post. Changing to a non threaded system would probably cut 80% of the pages out of the directory table. No doubt this would increase system performance. I worry what will happen if I'm still using this software in a few years (despite what I flippantly said the other day about not caring too much about scaling issues due to unpopularity.) But I won't be removing threading. It is helpful sometimes. Most notably it allows others to link directly to a page that contains just one focused part of a very long, deeply threaded discussion. But I think I will make it an option for each page owner to choose straight or threaded discussions. As long as you don't have to see the spaghetti code behind the scenes this probably seems like the best choice. No going back. But it will help us grow if we only use threading where it's really needed. |
return to: jimslog |
"...ystemnews/pageback/12178/?/ Content-Length: 0 Connection: close Content-Type: text/html; charset=ISO-8859-1 ..." |