Don’t fear, I have no plans to start (gack) audioblogging, but I was curious about what kind of effort it would take to add RSS enclosure support to my Blosxom installation. Answer: not much. Mind-numbing detail follows for the Blosxom geeks, everyone else can skip the rest.
It's a nicer solution (using a standard
than my meta-tag based one, IMHO.
The discussion here got me thinking as to how to include both full
feeds and meaningful summaries in my syndicated feeds. For
now, I'm going to concentrate on doing this in the Atom feed, since
Atom includes explicit, specified support for carrying both
fully marked-up content and summary text for a given
The obvious way to do this in Blosxom is to use a meta variable. To
drastically oversimplify, the meta mechanism gives you a private namespace in a
Blosxom entry to play with, letting you set variables that are
available to any plugin you wish to write (or hack, in this case)
to do something useful with them. To this end, I'm going to start
adding one sentence summaries in a
variable to my entries, and I'm going to add a field to the story
template in the atomfeed plugin to drop them into the feed.
Do any shipping aggregators use summaries in a practical fashion now?
I don't think I ever explicitly mentioned it here on FFG, but category-based feeds work here, too, and, indeed, work on any dynamically-served Blosxom blog. It's one of those cool things I always took for granted, like oxygen. Anyway, if, for example, you like my music posts but think I'm completely full of it whenever I talk about technology, you could subscribe to my music subfeed at http://www.freeke.org/ffg/entertainment/music/index.rss20. Just look for the "breadcrumbs" after any given post to let you know where in my hierarchy a given sort of post resides. The cool thing is that those feeds can start anywhere in the hierarchy, so http://www.freeke.org/ffg/entertainment/index.rss20 would get you all of the posts about not just music, but any other "entertainment" subcategories, like books and food.
Of course, this being Blosxom, these subcategories work not only for RSS 2.0, but for any content type I've built a flavour for, for example RSS 1.0, or HTML, or Atom, or printer-friendly, or mobile-ready. Even "cool URI's" like http://www.freeke.org/ffg/entertainment/music/dbsweden work (they give you the HTML rendering.) Not bad for a few hundred lines of Perl, eh?
Just remember, next time someone tries to sell you a "revolution", check for prior art. :)
Hooray for a little Blosxom community-building! Rael Dornfest has made available various Blosxom-flavoured knickknacks for our enjoyment. There aren't many software packages out there good enough to justify my buying fan merchandise, but Blosxom is definitely at the top of that very short list for me.
I've had an increasingly annoying problem with comment spam in the writebacks for some of my older entries. The usual suspects have devised semi-automatic comment spamming scripts that look for blogging-related entries via Google and serially spam comment-enabled weblogs with links to the expected sorts of things. Most of the discussion I've seen online about preventing this has been geared towards Movable Type-hosted blogs. Noticing that most of the comment spam happens in older entries that probably aren't going to see any legitimate new comments, a lot of folks simply close discussion on older entries after a few weeks, which I think is natively supported in MT.
Closing comments for a Blosxom entry is pretty simple, as well: just make the writeback entry read only. On Unix platforms, just change the mode of the writeback (.wb) file to
444. I don't know the Windows equivalent, but I'm sure it's just as simple. If someone (usually a spammer) tries to post a writeback to one of your old entries, they get (at least in the default writeback setup) the message: "There was a problem posting your writeback.", which is fine for my setup, though I suppose it's easy enough to customize the message if you like.
I imagine it would be about a 3 line perl script to simply walk your writebacks file tree and close all extant writebacks older than a certain number of days, but I'm a little too lazy to do that today.
I was reading an entry on the Blosxom mailing list and I realized something (funny? embarassing?) about myself. I go out of my way to make certain technical tasks more difficult than they strictly need to be.
Here's the post that started me thinking in this direction. Two listmembers immediately and helpfully posted links to plugins which will automagically handle graphic linking and sizing. Fine, I thought, I suppose I could use those plugins too, to simplify adding graphics to new posts... and then I stopped. I don't want to use those plugins to make marking up graphics easier. I actually enjoy the process of:
<IMG>markup by hand, including the
vspace, if necessary.
Now this is just crazy. I'm sitting in front of a Macintosh. I should be using Photoshop or GraphicConverter or whatever else to do this in 2.5 seconds. Instead, I'm busting out the man pages, typing command lines that sometimes wrap twice, and all the rest. Why on earth am I doing this? I've even got tools that will take closer-to-English wiki-ish and Textile markup and convert it to HTML automatically, yet here I sit in a text editor tagging this entry using no macros.
Why? Because, at some sad level, I like doing it this way. I can't explain it. It makes no logical sense. I guess it's some twisted reflection of the impulse that compels the fisherman to strike out to the lake at 5AM with a pole over his shoulder, rather than spending 2 minutes at the fish counter at the local market. Only the fisherman gets to spend time communing with nature, and I just end up making my wrists hurt a little more.
Of course I didn't install the Blosxom automatic image plugins. That wouldn't be sporting.
Sam Ruby contributed a wonderful bit of automagic that "does the right thing" in your Atom feed, based on whether a given entry is well-formed or not. You can verify this by viewing-source in my feed. This actually shows off a capability of Atom that doesn't (to my knowledge) exist in RSS -- namely, that encoding can vary
entry within a given
feed. (If I've missed something obvious and this isn't true, feel free to correct me in the comments.)
I've included Sam's plugin in a revised flavour pack. Another improvement -- it doesn't assume US English anymore (duh, sorry about that) -- it now uses
blog_language like it should have in the first place.
As written, this flavour requires the
lastmodified (with a small patch, included) plugins. If you're running Blosxom 2.0, you can grab my Atom 0.2 flavour files here. It uses a CDATA encoded version of the individual posts. If you're enough of a stud so that your blog's totally valid XHTML you might want to modify
story.atom to serve the non-encoded representation instead. I wasn't going there with my own stuff-- some of these entries get written after midnight, but hey, knock yourself out.
Rael Dornfest released Blosxom 2.0 today, and also launched a renewed website for it. As per just about every other Blosxom upgrade I've ever done, this one literally took 5 minutes -- open the CGI script and change a handful of variables, change my Apache ScriptAlias directive to point to the new script, gracefully restart Apache. "There is no step three!"
Following the news of Sam Ruby's snapshot spec, here's my first pass at a newsfeed in the format that will not be known as Echo. This is, of course, a largely theoretical exercise, because, to my knowledge, there are no aggregators yet capable of reading the feed, but it was a nice excuse to get more up-close-and-personal with writing Blosxom flavours and to take a closer look at the spec.
If I can do it, then the fears that the format would be too complicated for vendors to support are pretty much shown to be unfounded, since I'm a freakin' lightweight. It took me about an hour looking at the spec and some sample feeds other people were generating to slap this together. No warranties express or implied, blah blah blah. Known bugs: I'm probably doing the wrong thing with the "modified" field for the entries.
The flavour files I came up with are here (zip file), and are released to the public domain. If you fix any bugs or make any improvements, let me know in the writebacks for this entry. Requires: Blosxom 2.0rc5 (might work with earlier versions, but it's untested), RSS10 plugin (yeah, you read that right -- I avoid reinventing many wheels by using this plugin), foreshortened plugin, lastmodified plugin.
edit: I checked the notEcho feed with a patched version of nntp/rss, and it works! Hooray for interop.
edit: The feed now validates. The updated flavour files require a small patch to the lastmodified plugin, I'm afraid. (included)
Never offend people with style when you can offend them with substance.
— Sam Brown, “The Washington Post”, January 26, 1977