I thought this was an interesting challenge, so I've been talking to the professional bloggers I know and wandering around the web looking for tips on building a successful blog. Here's a summary of what I found.

Develop a distinguishing twist

Don't start empty

Keep the pace up

Publicize your blog

Track your readership

Make the blog easy on the eyes

Make yourself useful

Ask your friends and fellow monks for feedback

Develop a distinguishing twist. There are lots and lots of programming blogs out there. Learn what they are like and pick something that makes yours "different". This means knowing yourself well. Are you funny? Do you have a droll twist on things? Or maybe your sense of humor is only so-so, but you are top notch at explaining things that are hard for others to understand. Maybe you have a funky way of solving problems that is surprisingly effective. Or a special interest in audio software or robotics. Whatever it is, choose something that you are very good at and no one else in the software blog-o-sphere can do as well as you, with your particular style and grace.

Don't start empty.Start your blog with at least 5 posts. A single post can't give someone a feel for what the site will be like. The first five posts should give potential readers a feel for the range and style of content on your blog. Even if you are only writing about Perl, there are lots of ways to do that. Let your readers know what your particular twist is.

Keep the pace up. Pacing is very important. New material ranks higher than older material on Google. Even more important, if you write on a regular schedule, readers are more likely to check in from time to time to see what is new. Keeping up a regular pace can be difficult. Some tips by professional bloggers I know (one of whom is my spouse):

Build up a backlog of blog posts. This is
your rainy day supply when you have writer's block or just no time to write.

Meter your content. Some days you might be on a roll. Don't post everything you write when you write it. Instead, set up a publishing schedule and publish the posts one a week or one every few days.

Publicize your blog. "Write it and they will come" just won't work in a world where there are literally millions of blogs. Here are some tips on where and how to publicize your blog

Include your blog on all of your user pages:

Facebook - make a link to your blog prominent on your facebook page if you have one. If you dont, get one.

Linked In - make a link to your blog prominent on your linked in page if you have one. If you don't get one.

Perl Monks - should be obvious, but include a link on your Perl monks page.

And any other place you have a user page: MySpace,
Wikipedia, Stackoverflow, ...

Tell your friends. If you have space for comments on your blog, ask them to contribute comments. This includes your friends on Perl Monks!

Include a link to your blog in your signature wherever you post, unless it is against site rules: PM, Stack overflow, mailing lists, Google and Yahoo groups

Network with other bloggers

Comment on their blogs and
include a link to your blog as part of your signature

Write an article on your own blog mentioning and even citing material from the other blog. Fair use laws permit a limited amount of excerpting, so long as you provide your own original commentary. When you attribute it (you must attribute it), include a link to that
other blog. Then let the blogger know by sending him or her
a private email (either via normal email or the mail form on
the blog site).

Add social bookmarking links to your site so readers can quickly submit articles they like to Digg, Delicious, Slashdot, and the like.

Add an RSS feed to your blog, so that people know what's new. Be sure to link back to your site in the feed.

Add a newletter to your blog and include summaries and links to your latest articles.

Be smart about how you use HTML markup and keywords. Search engines are more likely to categorize your blog properly if words that are important to your site show up regularly in headers (text tagged by <h1>,<h2>,etc

and blog posts.

Make a list of all of the blog aggregators that might be interested in your blog. The get on their lists. Don't limit yourself to software or tech aggregators. If you blog on how software is used in political campaigns and you make comments about politics as well as software, then find the politics aggregators as well.

Track your readership. We all know that up-votes and down-votes can help us monitor the quality and interest level of our posts here at Perl monks. Out in the blog-o-sphere we also need to track the quality and interest that our blogs are generating. There are many, many tools to do this. To get web statistics you could go with a CPAN solution like Apache::LogParser which has some
canned statistics, or Parse::AccessLogEntry which breaks up the access log lines into fields so you can roll your own stats. There is also the open source Perl solution AWStats if you prefer a more full-bodied solution. Finally, you could consider third party services like Google Analytics (free) or Lyris/ClickTracks (fee for service). These two are intended only as examples - no recommendation is implied.

Make the blog easy on the eyes. We all know how hard it is to read a poorly formatted PM post and many of us skip them. The same will happen if your blog fails to catch the eye. Too much text makes some eyes swim - even the eyes of good coders. Blogs should mix visuals and text, diagrams and explanations wherever possible.

Even a few purely decorative elements can be good. Find a piece of art you like or an animation you feel is cool. But make sure that what you choose makes sense given your blog's special spin or captures its emotional energy. If you are blogging about Perl, software and movie production, it might make sense to have some film production pictures - you could even ask the studio: you might get a yes (after all - they need to promote themselves too). If you are blogging on Perl and computer art, maybe you want so top
notch drawing or photos touched up with Perl programs.

And don't limit yourself to visuals. Consider linking to YouTube teaching videos and outtakes from Perl conferences that do a good job of illustrating concepts your blog believes in. And if you are blogging on computer generated music, maybe a few sound tracks would be appropriate.

And then there are the code samples. Code samples should be syntax highlighted and nicely formatted. If you can use Perl on your blog site (you can, can't you?), Perl::Tidy is your friend. If you can stand PHP, GeSHi provides a very nice multi-language syntax highlighter.

Make yourself useful Having lots of material on a site is great. Being able to find it is even better. Make sure you use your tagging system well so that people can use "categories" to quickly find articles of interest. Use a good search engine for your blog content (CPAN recommendations anyone?) and make the search box easy
to find. You'd be surprised about how many blogs out there have great material that is hard to find. Don't be like PM before we had super search.

Ask your friends and fellow monks for feedback Stats can only take you so far and readers are more often than not silent. A friendly eye can go a long way to see ways you can polish up your site or improve your publication strategy. We all want to see Perl thrive, so let us know what you are up to and feel free to ask those
you trust here for feedback on your new blog.

The distinguishing twist could be especially helpful not only for an individual blog, but for Perl's public image as a whole. Any blog full of projects that are not web-based, simply wrapping some shell utilities written in C, or used to munge text files on a Unix system will help promote Perl as the general purpose language that it is.

Obviously, nobody wants to ignore Perl's strengths with text, for quickly whipping together small projects, and as a glue language. I'm not saying anyone should ignore those. It's important, though, that problems are solved which do more than just the perceived pigeonholes of Perl. Getting word out about those projects is what Perl's image really needs. BioPerl, any sorts of graphics work, audio, video, any graphical applications with slick wx, QT, or gtk+ interfaces, large systems, and projects that are already broadly visible which happen to be written in Perl or partly in Perl should really help break out of the pigeonholes.

Trackbacks are good once a relationship is established, provided the other blogger supports them. Many bloggers have turned off trackbacks because of link-spam related problems. However, the reason I suggested sending a personal note is that it helps build the human relationship, especially if you don't already know the other blogger. Ideally, you want to encourage them to read your blog and comment on it, as well.

The reason I didn't include "writing what people want to read about" explicitly in the list was that it isn't actionable. You can monitor readership and decide if you are happy about your level of readership or want to increase it. You can listen to your friends and decide to make changes to your blog (or not).

But can you really know a priori "what people want to read"? Without feedback how do you know? Aren't you just guessing what people want? And even if you could know, isn't it relative anyway? I know of very few things that "everyone" wants to read, but lots of things that "some" want to read. The challenge for the blogger is finding that "some" and letting them know that your blog exists. That's why knowing your audience and publicizing your blog to that audience is so important.

The one somewhat objective portion of "what people want to read" concerns human factors: no matter what our range of interests, it is hard to read a blog that is poorly written, badly formatted, and strains the eyes. Hence the points about readability and usability. But even here, I think you have to again consider your target audience. As we have seen from the often heated discussions about the PM user interface, what is readable for one person is fluff and distraction for another. So once again, we are back to knowing your audience.

Ultimately, a good blog is less about "writing what people want to read about" and much more about "finding the people that want to read what you want to write about". You aren't likely to stick with the blog long enough nor write regularly enough to ever get an audience, unless the journey is at least as valuable as the goal.