September 14, 2005

Blogging with Blosxom

Author: Keith R. Fieldhouse

If you're considering adding weblogs to your workgroup's communications arsenal, you're not alone. Many organizations are experimenting with internal, and external, blogs as a way of fostering communication between co-workers and between the organization and its customers. This article focuses on using Blosxom (and its Python-based cousin PyBlosxom) to quickly and easily set up a blogging environment for your team's use.

Before you start, consider blogging's place in your workgroup's communication infrastructure. A wiki is an outstanding tool for public collaboration, while email excels at person-to-person communication. Blogging occupies a useful niche between these.

Blogs can provide an important venue for certain kinds of information. For example, a business development manager can provide daily reports on sales calls without waiting for some specific progress to report (e.g. a contract signing) as he might want to do before sending a company-wide email. As a result of having more information about the manager's customer visits, participants in design meetings may be better equipped to balance upcoming feature releases.

As another example, a project architect could release a series of blog entries detailing long-term goals and intentions for a project. Co-workers could then respond to, and help refine, the architect's ideas. At the same time, the employees taking direction from the project architect will develop a better idea of what the architect has in mind and pursue their own work accordingly.

In short, by providing an informal window into a person's or team's work, you can foster better communication between co-workers.

If all of this makes you eager to experiment with blogging, you'll need to consider several factors before installing a blog publishing tool. While the basics of a blog are fairly straightforward -- a series of entries with the most recent at the top of the page -- editing the HTML directly isn't especially convenient or scalable.

Choosing your blogging platform

Unless you already have someone in house to deal with MySQL, maintaining a feature-rich publishing tool like WordPress can require more effort than is justified for an initial, experimental deployment -- especially if something goes wrong. There are free hosted services, such as Google's Blogger, that require no setup -- but you might be reluctant to put your corporate communication to an outside service available to anyone. If you want to keep your blogs on your organization's intranet, you need a tool that's easy to set up and manage.

This where Blosxom comes in. Blosxom, written by Rael Dornfest, makes it very easy to maintain and publish a weblog. Blosxom simply maps the contents of a directory tree to a blog. Each text file in the tree is an entry, the first line is the entry's title and the remainder of the file is the body of a blog entry. Entries are ordered by the file's time stamps. Sub-directories in the tree represent categories. Users create new entries by simply editing a text file in the correct directory.

Installing Blosxom

Installing the Perl-based Blosxom or its Python-based cousin PyBlosxom is simple. While the two projects differ slightly in their feature sets, the choice between them is largely driven by language preference. If you have in-house experience with Perl, then choose Blosxom. Python shops, obviously, are likely to be more interested in PyBlosxom.

After downloading the version of your choice the installation for either project consists mainly of installing a single CGI script -- and in the case of PyBlosxom, some support files -- on your Web server and making a few edits to the configuration, mostly to specify the location of your data directory (the tree of text files the system will use as your blog's entries). We'll cover the installation of Blosxom here, and you can find the installation instructions for PyBlosxom in its documentation.

We'll assume that you're going to be using Blosxom on a server running Linux or a Unix-type OS. Download the Zip file from the Blosxom site and unpack it. Move the blosxom.cgi file into the the directory you want to use and make sure that the file has the correct permissions by running chmod 755 blosxom.cgi. The blosxom.cgi script will need to "live" in a directory where CGI scripts are executed.

Next, you'll need to edit the blosxom.cgi script to reflect your environment. There are a number of variables that you can edit, but most can be left at their defaults. However, you probably will need to edit the $datadir, $blog_title, and $depth variables. See the Blosxom installation instructions for full instructions on installing Blosxom in various environments.

Once you've gotten Blosxom running, you have at your disposal a very capable blogging system. Using the text editor of your choice you can immediately begin producing content for your blog. Even better, you can customize Blosxom and PyBlosxom to add features that will make your blogs even more useful.

Customizing Blosxom

The first and most obvious customization is to adjust the visual look, or "flavour" in Blosxom parlance, of your blog. The default flavor is "html." What this means is that Blosxom will look for files called head.html, footer.html, and story.html in its data directory. These files serve as templates for the various parts of your blog. To change the look of your blog simply edit these files to your taste. There are flavour samples for both Blosxom and PyBlosxom on the projects' sites, where you might find flavours that you can adapt to meet your needs or match your organization's style.

Figure 1: A Bloxsom based blog using the "html" flavour from the Blosxom flavour
sampler - click to enlarge

While the core installations of Blosxom and PyBlosxom focus on being the simplest possible blogging system, each project supports a plugin API that allows them to be customized in a variety of ways. Generally speaking, using a plugin involves downloading a plugin from the plugin registry for either Blosxom or PyBlosxom and installing it into the plugin directory of your installation. Depending on the plugin there may be some configuration work to do as well.

Plugins can be used to make your blogging setup as easy to use as possible. One way to do this is to provide a simplified markup mechanism so that you can format your blog entries without the need to edit raw HTML. The Tiki plugin for Blosxom allows you to format your entries using markup syntax similar to that found on most wikis. Similarly, the Txtl plugin for PyBlosxom allows you to use Dean Allen's "Humane Web Text Generator" Textile markup. Both of these plugins make it easy to create nicely formatted blog entries.

To enable your blog to become part of a two-way communication process, you may want to enable comments. Allowing readers to comment directly on a blog entry can be a very powerful feature. With comments available, any blog entry can become an ad-hoc discussion group.

Figure 2: A Blosxom blog entry with one comment and one TrackBack - click to enlarge

The TrackBack system developed by Ben and Mena Trott (the developers of Movable Type, another popular blogging system) can also be quite useful. Rather than posting a comment directly to your blog, TrackBack allows authors of other blogs to add links to their blog entries to entries in your blog, usually because they are responding in their blog to something you have written in yours. Readers of the original blog entry will see the link and can follow it to the related entry. As a result, readers can follow an entire blog-based conversation by simply following each TrackBack link in turn.

Both Blosxom and PyBlosxom combine standard comments and TrackBack features in a single plugin (TrackBack, after all, is really just a specialized comment). Blosxom calls the plugin that enables this combination of comment and TrackBack features writeback.

The PyBlosxom project makes available a contributed plugins package that contains a variety of useful plugins, including the PyBlosxom comments and TrackBack system (see the directory plugins/comments in the "contrib" distribution.

Plugins and flavours aren't the only ways you can adapt Blosxom to your needs. The very simplicity of the entry mechanism opens up interesting possibilities. A nightly build system could generate entries in a results category. Procmail could be used to copy emails with a certain subject line to your Blosxom data directory. These are just a couple of the possibilities. Since Blosxom and PyBlosxom are open source, either tool can be modified to meet your organization's needs.

Both Blosxom and PyBlosxom lend themselves to a simple staged rollout of blogging capabilities within your organization. The installations of either tool requires little in the way of prerequisites or resources. As you and your team become more familiar with blogging and more sophisticated in your requirements, the plugin system (and available plugins) will help expand your deployment's capabilities easily. All of which will help you make blogging an effective part of your team's communications arsenal.


  • Open Source
Click Here!