Building with Blogs
Packages designed from the ground up specifically for blogging include Radio Userland, Blogger, Movable Type, Greymatter, Roller and CafeLog. Most include advanced features like the Blogger API, MetaWeblog API, RSS feeds and subscriptions and XML-RPC pings to aggregator sites such as www.weblogs.com. Without RSS feeds and XML-RPC pings, blogs don't get included in blog-based web services like DayPop, Blogdex and Technorati. You hear a lot about the theory of web services, but in the blog world they're easy to put into practice.
Also falling into this category is LiveJournal, an open-source project with a large following that puts a high emphasis on community ties and participation. It's designed as a centralized system open to many clients on different platforms, all of which are also open source. While LiveJournal does RSS feeds, it doesn't make XML-RPC pings to aggregator sites. It also lacks some of the formatting characteristics one associates with blogs, such as blogrolls in the margins, all of which makes it less blog-like than the others in this family.
After the wild success of discussion sites like Slashdot and Kuro5hin, a number of software packages emerged with Slashdot-like functionality. Slash is Slashdot's own code base, Scoop is Kuro5hin's, and mod_virgule is the trust system on which Advogato is based. These first-generation packages allow you to set up story posting, site membership, comment moderation, topics or categories (with icons), polls, post archives and so on. These cover the main requirements of blogging tools, although many lack more-advanced functions, such as RSS feeds and XML-RPC pings to aggregators. Given the essentially personal nature of blogging, even on blogs with more than one author, features like karma and moderation are essentially unimportant.
The growing popularity of PHP invited the second generation of discussion-oriented sites. PHP-Nuke launched the generation; but when it went unmaintained, a number of programmers forked the code base and created PostNuke, Geeklog and PostTEP, among others. This generation also allows easy theming and better plugin management, so you can easily write code that might go, say, in a sidebox on the site to perform a specific task. PHP-Nuke is maintained again, by the way. This family also includes hybrids like PHP-Slash, which is Jay Bloodworth's port of Slash code from Perl and mod_perl to PHP.
Some blogging tools come out of the traditional web site content management space, including support for multiple authors and permissions and work-flow enforcement. This is the Vignette StoryServer tradition, which includes Zope, which is more than just a CMS, Nucleus and Drupal. Content management sites provide for a more formalized model-view-controller approach, with clear separations between content, markup and work flow. These tools often are ideal for creating dynamic web sites with a lot of authors and editors, but they tend to lack some of the advanced features found in blogging tools, such as RSS feeds and XML-RPC pings. They also lack Blogger and MetaWeblog APIs for posting and editing content from other non-web browser-based applications.
Wikis are another way to create dynamic web sites. They allow anyone to edit and mark up a page easily, while still maintaining version control. Some blogging tools are based on Wiki code or on Wiki ideas. These include SnipSnap, TWiki, Tiki, WikiWiki, MoinMoin and ZWiki. They offer some content management but focus mostly on ease of editing and posting and speed of updates, neglecting such blogging functions as dated entries and RSS feeds. Other families worth noting are the Java-based blogging tools, such as Roller and WebForum; and Python- and Ruby-based tools, such as Pyblosxom and tDiary, which is hot in Japan.
We list all these families because your particular needs may not be restricted to blogging. But if blogs are what you want to do, or what you want to support, you need to pay close attention to what works best for blogging purposes.
Simply put, your blogging system doesn't qualify for the label if it can't answer yes to the following questions:
Can a user dynamically post to a site?
Are posts easy to create, review and edit again after they're posted?
Can an administrator limit who posts to the front page?
Can a user edit in a browser (at a minimum) or another tool of his or her choice?
Does its page format allow blogrolls and other sections outside the daily posting area?
Does it produce RSS feeds?
Does every post have a permanent URL (or permalink)?
Do current posts have unique URLs?
Can search engines crawl the archives?
Are the archives stable and safe from rot?
The big three—Blogger, Movable Type and Radio Userland—qualify on all those grounds, because they were built from the ground up as pure blogging systems. This is also why most of the blogs listed in the Blogging Ecosystem's Top 300 lists are produced by big three tools.
We've been experimenting at Linux Journal with various weblog systems, hosted on a server kindly provided by Penguin Computing. Most of our efforts have been focused on Movable Type, which is the only one of the big three that hosts on Linux and the one that appears to have the most momentum in the Linux development community. The source code is available to end users but not under an open-source license.
Movable Type offers two licenses of its own: a free (as in beer) one for noncommercial use and a $150 US one for commercial use. While this disqualifies Movable Type as an option for writers and publishers, including Linux Journal, who prefer to use free software, many blogging organizations that support the Open Source and Free Software movements, such as the Electronic Frontier Foundation and Creative Commons, are using Movable Type.
So what are your choices here? If you want to put up a bare-bones blog and don't mind if it doesn't say yes to all the questions listed above, LiveJournal is a handy and popular choice. You'll be left outside the Blogging Ecosystem (as roughly defined by Phil Pearson's aggregation site by that name), but you'll be using mostly GPLed open-source software and be involved with a lively community.
If you want your blog to thrive in the Ecosystem and don't care too much about what's happening on the back end (just as you might not care what's behind a Hotmail-type web e-mail system), you might consider Blogger or Radio Userland. Both allow you to blog from any server to which you can FTP data and serve HTTP. For example, to do a Blogger blog, go to www.blogger.com, set up an account, make it point to your FTP server with your user name, password and web server HTML directory. In Debian the default is /var/www. On Red Hat, it's /home/httpd/html. This is a simple, easy-to-set-up blog system and a popular choice—even for a hacker who doesn't want to be bothered setting up everything from scratch.
If you want a full-featured Linux-based blogging system for yourself or your organization, and you don't have a problem with its licensing scheme, Movable Type is your best choice. Installing it is almost easy enough for novices. It's also extremely flexible, capable and easy to maintain.
If platform and licensing issues keep you away from the big three, you need to look among the discussion site and content management systems. If you're already using a PHP-based system such as PHP-Nuke, you might consider adapting your current system or going to another one in the same general family, such as Geeklog or Drupal. None are as easy to install as Movable Type, but none are hard to maintain once you master their methods.
Command-line tools for blog editing and posting exist on Linux as well. One example is Philip Myelin's Bzero. Philip also is the author of the Python Community Server and phpStorageSystem, both of which are clones of the Userland Radio Community Server. Running one of these applications on your web server allows you to host Radio-based blogs on your Linux box.
If none of the alternatives suits your fancy, you might consider creating or improving an open-source built-for-blogging system. Greymatter, which is written in Perl and GPLed, had some good momentum going until 2001, when Noah Grey decided he had better things to do. You could pick up where he left off, or you could build a new blog system from scratch.
Countless options are available. URLDIR can generate a variety of feature comparison tables that cover all the systems listed here and then some. If you're at the tire-kicking stage, it's a good place to start.
But don't make a decision before looking at the blogs produced by these different systems. Follow David Ogilvy's classic advice to companies looking for an advertising agency: “Look for work you envy, and find out who does it.”
Doc Searls is senior editor of Linux Journal.
David Sifry is cofounder of Linuxcare and Sputnik, where he is also CTO.
Doc Searls is Senior Editor of Linux Journal
- One Port to Rule Them All!
- Privacy Is Personal
- PHP for Non-Developers
- Secure Server Deployments in Hostile Territory
- Linux Kernel 4.1 Released
- Django Templates
- July 2015 Issue of Linux Journal: Mobile
- A Code Boot Camp for Underprivileged Kids
- Practical Books for the Most Technical People on the Planet
- Attack of the Drones