2005-12-02

Permalinks and their applications

Permalinks are the little stay-in-place URLs that make bookmarks viable. The keeper of a page signals his or her best promises that if you bookmark this link, that bookmark will keep pointing to this page, or in the case of a comment permalink, to that particular spot on this particular page, whatever other changes he or she makes to her page templates et cetera. Offering (and not only saying, but doing so) permalinks to content and microcontent provides longevity to your blog and adds value to it and its visitors alike. It's a seal of quality, and of showing that you care about your work and those who read and link to it enough not to suddenly dump it in the big bit bucket in the sky, breaking links all over the web and making future would-be visitors angry with you for having robbed them of whatever next part in a chain of on line hypertext they were tracking.

Hypertext is a volatile medium only in so far as content providers don't care about making it a lasting, permanent structure worthy of attaching to and building even more off of. Permalinks offer the joints of these structures we call the web.

Blogger templates, by default, offer permalinks to posts, unless you change titles or month on them, and to comments to those posts. Blogger even standardizes the format of link names and names of anchors (mid-page permalink targets), naming post comment sections "#comments", backlinks "#links" and individual comments "#c<huge comment timestamp number>". I say timestamp number, because it is the number of nanoseconds passed since the dawn of the Epoch (January 1, 1970), divided by ten. (So if you ever scoffed at not being able to tell down to the second just when a comment was posted, well, you didn't know better. :-)

I'm going out on a tangent here, but before I return to the topic, let's make a nifty little tool that helps you date a comment, to the (tenth) nanosecond, by pasting it's permalink here (it works for post id numbers too):




Let's go back to comments and standardized permalinks again. Standardization has some benefits to your reader base, making it worth adhering to them, at least if your blog is on Blogger. (And, similarly, if there is a de facto standard for what anchors to have in a page for which content sections on your different blog or publishing system, there are the very same reasons to adhere to that system rather than Blogger's.)

Tools.

Any sufficiently large, useful and loved system on the web will grow a following of useful tools to do good things for and with them, whether they are more or less made for the purpose, such as Del.icio.us, or not, as in the case of Blogger. But tools will develop, and they will target the broad main line doing what most blogs do, staying close or identical to the default setup. Again, this is not something to be ashamed of, but a useful choice. I'm going to devote most of the rest of this post to one example of a tool that thrives on Blogger's standard comment links.

Some people across the web have felt there is an embarrassing lack of infrastructure on offer for looking up what you said last week to whom about what, and most of all, where. You post a comment on some blog, forum or whatnot, and then you forget most of it, except perhaps that it was about somebody's clever money making scheme, quest for fame, or perhaps a game you like. It must have been back in September. Or maybe August. But Google just won't find it for you, as you can't seem to pick out your particular wording, or something unique in the context surrounding it, and your thoughts are forever lost.

See? That's a lack of infrastructure. Of course there should be something that keeps track of what you write when you write it, perhaps offering some means of tagging it for a later reminder. You could of course bookmark every single comment you wrote and keep an index over them in a database... ...but it quickly leaps into deep geek realms where only those in need of spending huge amounts of time to solving taxing computer science problems roam. And not many of those either; most spend their time on more productive things. (Or playing World of Warcraft.)

But add a tool to do the bookmarking for you, extract your comments when they are written and that just makes it a click or two to decide whether you want to keep this in your web feedback history or forever leave it adrift in web space, organize them into a huge database maintained by other benevolent people, and suddenly it becomes viable. And it is already done, too. It's called Comment Blogging and there is a Greasemonkey user script to pick up all your Blogger comments already. Provided the Blogger blogs you visit use the common Blogger anchor layout; otherwise your comments will hang in the air, missing their target on the page unless you learn the blog's URL layout and compensate manually for every comment you write there. Not very likely, no; it's already too much work for too little gain.

This was one first tool, using Del.icio.us to store the comment bodies, locations and tags mostly automatedly. Del.icio.us isn't particularly addressing this usage domain, though it provides some decent tools to do the work anyway, by being a rather generic and accessable thing in general. Singpolyma has just released another one, specifically targeting Comment Blogging and comment bloggers, with features such as marking not only where a comment was dropped, but what it was a comment to, which should eventually allow for some rather advanced comment tree threading facilities, assuming we would ever want to publish and navigate through the conversation jungles spreading across the web, unsatisfied with just being able to find things.

I know I want to.

It's perhaps not all unsurprisingly (Stephen reads this blog, and we have much common interest in this field and topic) rather similar to some blue sky ponderings about cross blog commentary a few weeks ago -- it lives on the Ning playground, and you only need to register a user name to get going yourself. Name to be decided, I presume, but you may soon hook up and import your Del.icio.us CommentBlogging comments, publish a feed and knit it into your post templates. (The importer still needs some love, at the time of writing.)

Anyway, among the few tags of Singpolyma's I peeked at, I found one attached to a non-permalink from my time rotated blog front page. Ouch. That's what I get for not adhering to standard linking behaviour, adding comment links to pages that don't usually have them (index and archive pages) without making sure that all comment links are permalinks pointing away into their respective posts. I just fixed that, and page title texts similarly linking into their own pages, so rather than just being a comfy way of recentering the viewport on the post or comment clicked, these will now link to a smaller page. Adapting to your visitors' use patterns is the price we have to pay for going out of the box a little; it will be interesting to see whether this makes all of my pages get an additional back link from their archive page, and recent ones another one from the index page. Comment permalinks had to be added by means of javascript due to Blogger technical limitations, so they won't show up, anyway.

It will be lots of fun adapting Greasemonkey scripts to put Singpolyma's work to comfy use in day to day blogging. You won't have to pull all that weight yourself, unless you really want to, Stephen. :-) And feel free to toss some of the ideas I'm assuming you must have into the idea blog, now that your baby is known to the world; I'll be sure to tag along. Literally. :-)

9 comments:

  1. Hey, good job on fixing comment permalinks on your main page :) I was going to contact you about it but never got around to it... I should probably fix mine too...

    ReplyDelete
  2. On trying to fix the comment permalinks on my blog I ran into a problem in that the blogger tag I thought I needed to use for such a thing won't work where I need it... how did you do it?

    ReplyDelete
  3. The relevant magic is in the function noComment() in my present page template, and in making sure that the structure of the comments section looks like:

    <div class="comment"> [...]
    <ul class="&lt$BlogItemPermalinkURL$;>">
    <BlogItemComments><li> [...]
    <p>By <$BlogCommentAuthor$>, on
    <a class="c-permalink" href="#c<$BlogCommentNumber$>"> <$BlogCommentDateTime$></a> [...]
    </p></li></BlogItemComments>
    </ul></div>


    Since you for some reason can't just have Blogger render a basic <a href="&lt$BlogItemPermalinkURL$;>#c<$BlogCommentNumber$>"> tag to do the whole job for you.

    My solution could of course be made much simpler, but this is the hack I use.

    ReplyDelete
  4. hi johan,

    Thank you for those wonderful codes.

    I have been researching and researching on how to add an img tag inside the comment area. Unfortunately blogger doesn't allow img inside.

    My comment area on my blogspot is using the browservulsel's comment form, alexking's quicktags, and dkgoodman's photo favatar.

    I would very much like to use smileys on my comments . Although not an expert, I knew rudimentary javascript, to position the codes.

    You, dkgoodman and singpolymia, seems to be at the top of the unofficial blogger development world. So, I come to you first.

    Thanks. Much appreciated.

    ReplyDelete
  5. Oh, by the way, I notice that you have a comment author highlighting.

    That is way cool. How'd you do it?

    ReplyDelete
  6. I'm not sure about what you're trying to do with images (it's not very aparrent from your posts, and you don't offer many links to follow, to get an idea of what you do), but it seems Jasper gave you something satisfactory, so I'll pass on that one. (Wouldn't Jasper rank kind of high on your top list too? I think he should, anyway.)

    Regarding author highlighting, my blog's noComments() function that runs on page init peers through all comments on the page and adds a class "me" to posts whose author link points to my own profile. It should be fairly easy to snatch and adapt.

    ReplyDelete
  7. johan,

    thanks for taking the time from your busy schedule to reply.

    I saw your author highlighting codes but stump on how to position the tags. perhaps, if you have a free time, you can perhaps post on how you did it?

    In my frustration I've cooked something similar, but couldn't get it to work (I guess my ecmascripts are not that good):

    var Author="<$BlogCommentAuthor$>";
    if (Author == "dreamflow"){
    class="mycomments";
    }
    }

    Oh yeah, Jasper is a definite top blogger hacks coder. Him, you, singpolyma, dkgoodman, john of blogfresh, some of the moderators of blogger forums, and those whose hacks have been accepted at blogger help hacks.

    Hope to hear from you again on your return. thanks once more.

    ReplyDelete
  8. In this post you state that the comment id number is the unix timestamp in nanoseconds divided by ten... I am trying to write a php-thing that takes the comment ID number and returns a unix timestamp in normal seconds (standard timestamp)... I tried just dividing by 100000000 and truncating... but that seems to return numbers one day off... any ideas? You can see the script here : http://bloggercomments.ning.com/

    ReplyDelete
  9. Time zones at play; the perception of what date it is is different in UTC-6 hours time zone where the server that runs your PHP code is located to where you and I are where our point of time reference is presently UTC+1 hours.

    This is also why the (IMO) ideal way of showing timestamps such as these to a visitor is by using client side javascript to format these integers, since the client always knows in which time zone it is, something the server very rarely does.

    ReplyDelete

Limited HTML (such as <b>, <i>, <a>) is supported. (All comments are moderated by me amd rel=nofollow gets added to links -- to deter and weed out monetized spam.)

I would prefer not to have to do this as much as you do. Comments straying too far off the post topic often lost due to attention dilution.

Note: Only a member of this blog may post a comment.