While I knew I was staking out a position that was likely to cause some controversy, I’ve been rather surprised at the response to my post on Weblog Weirdness. I got several e-mailed responses, some in support of and others disagreeing with my views. Matt Mullenweg went to some length to describe just how wrong I am, and I threw out a few responses in the comments. Chris Vincent responded to my post by keeping the reverse-chronological (or, as Michael Hanscom put it, chronoillogical) order for his weblog, but implementing a “Welcome Back” feature which tells you what’s new since the last time you visited the site. The News Goat put forth some ideas on how to handle chronological posting as well; the ideas are similar to what Chris did and close to what I had in mind (more on that in a moment). And the aforementioned Michael wrote an entire post in chronoillogical format, with the paragraphs running last to first. The interesting part is that it made almost as much sense that way as forward, which is either a testament to Michael’s writing skills or else an indication that I’m wrong about the nature of writing. (Hey, why not give my critics more ammo?)
Speaking of critics, I did have my mental state questioned a few times, and more than one person has wondered why I’m so angry about this subject. Angry? Apparently I’ve managed to build up an image so mild and inoffensive that strongly stating my views looks like anger. Time to start correcting that image.
Meanwhile, I took a crack at setting up my primary idea, and discovered that I just don’t have the programming skills necessary to make it work in a reasonable time frame. (Hell, I couldn’t even figure out how to get MySQL running on OS X, and spent a couple of curse-filled hours before giving up.) So I’ll describe it, and hope that one of you bright coders can make it work. Although I’m using ordered steps here, this isn’t a flowchart or anything; it’s just the way I envision the system working in my head.
- The posts are in chronological order. (Yeah, I know, that probably seems obvious given what I’ve been talking about.)
- When the user first arrives, the site sets a cookie that records the date and time. This is updated on every subsequent visit so that the cookie always knows the last time the user visited the weblog.
- On subsequent visits, any post was previously seen shows only its title and date; the entry text is collapsed (hidden). Any posts that are new since the last visit are shown in full. Some sub-thoughts to go with that:
- The collapsed posts might not be totally collapsed, but show an abstract, or the first sentence of the post, or something that gives a little more context than just title and date.
- The most recently-viewed post (that is, the post that was most recent the last time the site was visited) could also be shown in full, in order to give some sense of continuity.
- For those who like to have a ton of posts on the front page, there might need to be a “skip to first expanded” link. Or else you could offer an option, also set by a cookie, regarding whether old posts should even appear at all.
- Next to each of the collapsed posts’ title is a button that lets the user show the text of that entry. Next to that button is another button that means “click me and I’ll expand this post and all of the posts that follow it.” No, I haven’t figured out how to turn that into an icon yet, but I bet somebody out there can.
- Similarly, expanded posts have buttons that mean “collapse this post” and “collapse this post and all posts that precede it.”
- If you visit the page and there’s nothing new, then collapse all but the most recent; in other words, make sure there’s at least one post open. If all of the posts are new, well then, of course you have them all open. The system might even indicate that there are archived posts that haven’t been seen, and offer a link to the least recent of them.
Matt actually proposed a very similar idea to me, except I think what he was envisioning was server-based: there’s a cookie that records the last visit time, and the server reads that and returns just the content for the new stuff. Though I see no reason why a server-side plugin couldn’t offer the kind of functionality I just described. It would require more roundtrips to the server as posts are expanded and collapsed, I suppose. It would still be worth trying.