Archive for the 'Blogging' Category

Note: I've reorganized this site to use tags; the category archive remains to support old links. Only posts prior to April, 2006 are categorized. Tag Archive »

Thanks for the Comments

To all of my regular readers and occaisional visitors, if you have left a comment, thanks. You make this site better when you contribute.

I maintain this website for a few reasons- to have a place to vent, a place to play, and especially, a place to contribute the odd bit of knowledge. Personal validation isn’t on the list. Nevertheless, it’s always nice to see that something I’ve written has helped someone, or made them think. I love to see new comments- it means that what I’m doing here is useful to someone besides myself.

Last week, I received a comment on an old Perl Howto from a year and a half ago. It was the first comment I’ve received on that post, and it was exceedingly brief. It was also one of my favorites. I reproduce it here, in its entirety:

nice! just what I needed. mime::parser->parse requires a file handle….

Comment from David at 2/7/2006 16:04:45

David didn’t leave a link or an email address, just a brief hammering of keys, but it’s a great comment. First, he tells me I helped him. “Just what I needed.” Now there’s a reason to keep blogging. Second, he mentions how he’s using it- the CPAN module Mime::Parser. This amounts to extra info for Google, so the next time someone is trying to figure out how to feed a Perl scalar to Mime::Parser->parse, they’ll be that much more likely to find the info they need. The site is improved by this comment.

Friction, Tags, and Just Writing Something

In my last post, I talked about the forces that prevent me from writing blog posts- factors I collectively call friction. One of the things that I cited was a desire to get things done first- for example, to make some headway on a new project before discussing it. Another version of the same problem is the desire to work out an idea completely before trying to explain it. In this entry I’m going to try and throw caution to the wind, and write about some ideas which aren’t fully formed, but which have been rattling around in my skull for a while.

Another of my examples of friction was categorizing posts. When I first started this site, I wrote my posts in the browser, using the Blosxom plugin wikieditish. Due to the way wikieditish works, I had to come up with the URI of a post before writing a post. Because my URIs reflect my post category tree, that meant that I had to categorize my post and name it before the first word was written. This is a little extra friction at the beginning of the process, when I’m still trying to figure out how to an idea into words.

Today I use Blapp to write my posts, which lets me name and categorize my post after it is written. This has reduced the friction of starting a post, but I still encounter friction when I need to categroize my posts. My category system, which you can see in the “More” boxlet on the side of this page, is a hierarchical system that evolved mostly in the first few months of the site’s life. As time has gone on, I’ve regretted some of the decisions I’ve made, and I’ve been reluctant to add new categories, because they don’t fit into the existing structure as well as I’d like.

Blosxom supports both date-type URIs and category URIs; this post is available both ways:

(Edit: the date-style link seems to be busted at the moment, I’ll ty to track that down tommorow. But it should work). I decided to use the category model for all of my internal links, trackbacks, etc., because they are nicely hackable along the category axis. On the other hand, the date URIs are nicely hackable along the time axis.

The friction is really tied up in the category tree. Besides the issues with the hierarchy, sometimes a post seems to qualify for multiple categories. There are ways to hack this into Blosxom, but none of them are very elegant, and have the side effect of further polluting your URIspace with additional permalinks, one for each category a post is placed in.

A solution I’ve been mulling would address a couple of these points at once, and that is to move to a tag-based categorization scheme, a lá del.icio.us, flickr, et al. Using a tagging system, a post can be tagged with as many tags as needed. Category style URIs would give way to tag-based URIs, which are actually index URIs rather than permalinks. For example, to see all of the pages I’ve bookmarked via del.icio.us and tagged as webdev (web development), you can visit http://del.icio.us/jason/webdev. In this case, I think the best candidate for a permalink becomes the date-style URI.

Tagging has been a hot topic for a while, but I’m going to sidestep the entire debate over taxonomy vs. folksonomy and simply talk about ways such a system would be useful. The ability to cross-tag a post I’ve already mentioned. Another benefit is the ability to automatically provide links to related material in other places. For example, a post about web development could automatically include a list of recent articles from this site with the same tag, and a link to that tag’s index on del.icio.us.

For another example, look at Technorati tags. This system allows you to tag posts in a way that lets Technorati aggregate your post with others that share that tag. A blogging system using tags could generate the Technorati tagging markup automatically, and could even show links to Technorati’s page for that tag (See Tantek’s site for an example of this in action.)

But why stop there? Another form of blogging friction I suffer is the need to link. I find it slowing and distracting when I’m writing a post to go hunt down URIs to things I want to link to- even related posts on my own site. Tags could help here as well, by adding tag lookup to authoring tools. If you haven’t used it lately, go check out the standard del.icio.us posting bookmarklet. If you have a del.icio.us account, click here to trigger it now for this page; your back button will bring you back. It has some cool new features, like a list of tag suggestions based on the content of the page being bookmarked (sometimes- if you don’t see suggestions, try it on some other pages). Now picture a blogging tool that analyzes as you type, suggests tags, and then suggests links to like-tagged content via services such as Technorati tags and del.icio.us, as well as posts from your own site. Instead of hunting down links, your authoring tool hunts them down for you. And with the groovy new Ajax stuff all the cool kids are playing with lately, you could even do this in a browser-based authoring tool.

I’ll wrap up for now with a teaser/segue to a future post- I’ve been toying with this idea for a while; and I’m of the opinion that as much as I like Blosxom, it’s not the right tool for this job. So, like scores of other wheel-reinventing programmers before me, I’m considering writing my own blogging software. But that’s another post.

Friction

If you’re a regular reader, you haven’t really been reading me regularly for a while now. This is because I haven’t been writing here on the site regularly for some time. The home page displays 10 articles at a time; as I’m writing this (prior to posting this), the oldest article is from March 22. Today is June 12; I’ve only managed 10 articles in the past 3 months.

This weekend I’ve been reading Joel On Software. While I’ve read a number of Joel’s more frequently linked articles on his site (from which the book is culled), I’ve not read alot of his material, so picking up the book seemed like a good choice. I always prefer hardcopy for extended reading. One of the topics he expounds on at great length in the book is the need for writing good functional specs. I found this interesting, as I’ve recently been battling my inability to write at work- not on specs, but on documentation. Joel gives this advice:

Writing is a muscle. The more you write, the more you’ll be able to write. If you need to write specs and you can’t, start a journal, create a weblog, take a creative writing class, or just write a nice letter to every relative and college roommate you’ve blown off for the last 4 years. Anything that involves putting words down on paper will improve your spec writing skills.

(from Painless Functional Specifications – Part 1: Why Bother?)

And of course, he’s right. That’s one of the reasons I started this weblog. And yet I don’t write enough. I attribute this largely to friction – things that make the act of writing a blog entry more effort then necessary.

One example of friction is the posting interface- when I first started the site, I posted everything via a simple web form, which was functional but it required me to pick a category before writing the entry. This doesn’t sound like much friction, but friction is cumulative, and every little bit hurts. Also, editing large amounts of text in a browser edit box isn’t really alot of fun. Worst of all, I couldn’t begin a draft and leave it till later to finish – I could only post completed works.

Last December, I started using Michael McCraken’s Blapp, a dedicated OS X editor for Blosxom weblog posts. It lets me write locally, see a preview of my post using my own templates, I can write the entire post before assigning a category, and I can save my work without posting it. This all amounts to lower friction, and it has made it easier for me to write for this site.

Another source of friction is inertia- the less often I post, the harder it is to get around to posting. To that end, I’m going to challenge myself to post here more often. After the November Blogging Challenge, I’m not going to try and hold my self to a post a day. Instead, I’ll shoot for a post every other day.

Another source of friction has been concern over content; I’ve often tried to keep my posts to a certain technical scope (which at other times I’ve ignored wholesale), to this end I’ll try and loosen up what I post about. A special case of this problem is a certain aversion I have to the release early, release often mindset- when I have a project in mind that I might want to tackle, I have a need to get a certain amount of progress under my belt before talking about it. In my defense, this site contains a number of examples to the contrary- things I’ve posted with “more info to come later” which never came. Nonetheless, I’m going to try and follow Les Orchard‘s example, and post about whatever I’m currently tinkering with, even if it won’t come to fruition.

Ultimate Blogger

I hate reality television. I continue to be amazed that the fad hasn’t followed disco and parachute pants into our collective Gallery of Things That Seemed Like a Good Idea at the Time. But this post isn’t about reality TV.

This post is about a blogging contest, set up in a Challenge/Win Immunity/Vote Someone Off format popularized by the aforementioned “genre” [As you read, make air quotes. -Ed.] Ten bloggers will be chosen from among the applicants to compete for six weeks in The Ultimate Blogger. Having participated in a number of blogging challenges in the past, I’ve seen firsthand how they can energize a flagging blogger (that would be me… 3 posts so far this month). This one certainly looks like fun, but I don’t think I’ve got the time to play. Besides, I doubt I’d make it past the application… only 10 contestants will be chosen.

But don’t let that stop you from applying. There are several of my favorite bloggers I’d like to see participate in something like this. If you don’t know who you are, check the blogroll. There are even prizes (circa $500 worth). And who knows, maybe I’ll give it a shot anyway. Deadline for applications is Friday, April 29, 2005 at 8:00 pm PT*.

* Footnote: The application states 8:00pm PST. PST is, of course, Pacific Standard Time. To the best of my knowledge, there are no areas in the U.S. Pacific Time Zone that do not use Daylight Saving Time*, so I think they meant 8:00 pm PDT. If so, your deadline is an hour ealier than you think. Yes, I know I’m being pedantic, but I’m a programmer- what do you expect? Also, I spent the first fer years of my professional life designing call-center scheduling software, so I tend to get picky about date and time math.

* Footnote to the Footnote: Yes, it’s Daylight Saving Time, not Daylight Savings Time. Yes, really. Want to learn lots, lots more about Daylight Saving Time? Check out the Webexhibits.org Daylight Saving Time Exhibit, one of my favorite sights on the web.

No Follow

Unless you’ve been living under a rock, you’ve probably seen the big Google Announcement, entitled “Preventing comment spam”. By adding a rel='nofollow'attribute to a link, you instruct Google (and Yahoo, and MSN Search) not to consider the link in things like PageRank calculations. Blog software producers have jumped on the bandwagon, promising to use this attribute in all links within comments, referer lists, etc.- anywhere a website visitor can create a link. The idea is that this removes the incentive for comment spam: nofollow = No PageRank.

Will it work? Ben Hammersley provides a lucid explanation of the economics of spam (it’s free!) and concludes that nofollow may increase the amount of spam. I tend to agree that spammers will pay it little mind; I think the real value (and Google’s real purpose) is that it may help improve search engine results. Remember when finding things via Google was easy, and you never saw links to commerce sites?

Robert Scoble notes this has another use – it allows a blogger to link directly to someone without giving Google juice. How often have you seen someone complain in a blog post about a spammer, without linking directly, for just this reason? Phil Ringnalda points out this can be used to selectively control the PageRank you bestow. Phil has added special style rules to his user style sheet (userContent.css in Firefox) to display all nofollow links in flashing lime green, which ensures he knows when a page he is viewing is fiddling with PageRank. I liked the idea so much I copied his style rule into my user stylesheet, so far it’s been enlightening to see who is using it, and for what links.

For now, I’m taking no action on this site – I already treat any comment containing a raw html tag as spam.