Wanted: advice concerning Wikis

I’ve got a project running around in my head that I believe a Wiki would be a good solution for, but I’ve not done much to play with/experiment with Wikis in the past. I’d like to start playing around with this project soon after I get home, so if there’s anyone out there who might be able to give some advice or recommendations, I’d appreciate some “expert assistance”…

For a while now, I’ve been hosting The Hanscom Family Website. While the original intention was for it to be a collaborative weblog for the entire Hanscom family, so far it’s been acting primarily as my dad’s weblog (and there’s certainly nothing wrong with that!). Hopefully we’ll be gaining more authors soon, though, as I’ll be sending a “how to” tutorial to Susan, Eric, and possibly Doug and Pam also once I’m home.

One of the original ideas I wanted to include on the website (and actually was started on an earlier incarnation, but lost in a server mishap) was a genealogical record of the family. As I don’t know of a really good way to do a web-based family tree, my idea was for each person to have a single page listing important dates (birth, death, marriage, etc.), contact info (if desired), and biographical information. Each page would also have a set of links to immediate family members (parents, children, siblings) that would allow the user to navigate their way through the family tree. We could then, over time, create a genealogical database (of sorts) of the family.

One of the big reasons I’ve wanted to do this (and this was brought up in a major way during a conversation with my mom last night) was the number of stories that are scattered among all the various family members — some written, but many only currently locked in the vaults of memory.

The difficulty I had in the first implementation was that each person’s page was just a static HTML page, and if there were to be any changes to it, they’d have to be done myself. I’d need to have information and stories sent to me, at which point I’d make the changes to the static pages and save them to the server. It’d work, but it would be slow and somewhat kludgy, especially as it would rely on my own time constraints in order to get any additions actually incorporated into the pages.

Last night as mom and I were talking, though, it occurred to me that a Wiki could be a perfect solution to this problem. The page structure and layout would be essentially the same, but it would allow any of our family members to click an “Edit This Page” link on any one of the pages and add whatever they wanted, be it more biographical information about themselves, memories of other relatives, stories that have been passed down in family lore about ancestors, or other such things. In theory, at the very least, this could work very well.

My limitations (and worries) are simply that I’m by far the most technologically- and web-literate of my family members, and I need to do everything I can to make sure that the interface is as simple and easy to use as possible. I also want to ensure that the site is not publicly editable, so there would need to be some sort of account registration system so that I could grant global edit rights to family members, but prevent random passers-by from making unwelcome changes. I also want to have the system be as resource-friendly as possible, as it will be running on a 350Mhz G3 that is already hosting three websites, two of which use the MovableType weblogging system (which I love, but I also realize that Perl can be a major resource hog as sites grow, and my webserver only has so much firepower at the moment).

I did a quick web search and found the Wiki Wiki Web’s list of Wiki engines, but truth to tell, it’s a little daunting, as there are so many different engines available. Even if I narrow it down to the two languages that I’m sure my system can easily run (Perl and PHP) there are still a large number of possible choices, and I’m not entirely sure which scripting language would be the better choice as far as conserving system resources and ensuring that response time for serving/editing/saving pages is fairly reasonable.

So, to sum up, here’s what I’m looking for:

  • A Wiki (or similar) engine to allow for collaborative decentralized editing of a set of web pages.
  • User accounts or some form of access control and management.
  • As simple and ‘idiot-proof’ of an editing interface as possible.
  • Low (or as low as possible) system resource overhead.
  • The host webserver is a 350Mhz G3-based Mac running OS X 10.2 (i.e., the Apache webserver, Perl and PHP supported, UNIX-based).

Any ideas? Recommendations? Questions, comments, words of wisdom? Any and all would be appreciated!

Atom feed now available

Seeing as how an Atom-enabled beta of NetNewsWire just hit the ‘net, I took a few moments to get an Atom newsfeed up and running for Eclecticism.

While TypePad has supported Atom for a while now, Atom feeds were only automatically included on sites using any of the Basic or Plus level auto-generated template sets. Those of us using custom coded Advanced template sets (especially those created before TypePad added Atom support) need to manually add the Atom template to our template sets.

The template code for my Atom feed is in the rest of this entry. It’s almost exactly the same as the template provided by TypePad — the only change I’ve made is to substitute AtomEnabled for the “more info” link rather than www.example.com. Posting this is just a convenience — while finding the template code wasn’t really difficult it did involve a few steps (creating a new advanced template set from one of the default system-provided template sets and go into the template editor to find the code), and posting it here will make it a bit easier if I need to track it down again in the future.

Here’s the template to use:

<?xml version="1.0" encoding="utf-8"?>

<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title><$MTBlogName remove_html="1" encode_xml="1"$></title>
  <link rel="alternate" type="text/html" href="<$MTBlogURL encode_xml="1"$>" />
  <id>tag:typepad.com,2003:weblog-<$MTBlogID$></id>
  <link rel="service.post" type="application/x.atom+xml" href="<$MTCGIPath$>atom/weblog/blog_id=<$MTBlogID$>" title="<$MTBlogName encode_html="1"$>" />
  <modified><MTEntries lastn="1"><$MTEntryDate timezone="UTC" format_name="W3CDTF"$></MTEntries></modified>
<MTBlogIfDescription>
  <tagline><$MTBlogDescription remove_html="1" encode_xml="1"$></tagline>
</MTBlogIfDescription>
  <generator url="http://www.typepad.com/" version="<$MTVersion$>">TypePad</generator>
  <info type="application/xhtml+xml">
  <div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site. Please visit <a href="http://www.atomenabled.org/">AtomEnabled</a> for more info.</div>
  </info>
<MTEntries lastn="15">
  <entry>
    <title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
    <link rel="alternate" type="text/html" href="<$MTEntryPermalink encode_xml="1"$>" />
    <link rel="service.edit" type="application/x.atom+xml" href="<$MTCGIPath$>atom/weblog/blog_id=<$MTBlogID$>/entry_id=<$MTEntryID$>" title="<$MTEntryTitle encode_html="1"$>" />
    <id>tag:typepad.com,2003:post-<$MTEntryID$></id>
    <issued><$MTEntryDate format_name="W3CDTF"$></issued>
    <modified><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></modified>
    <created><$MTEntryDate timezone="UTC" format_name="W3CDTF"$></created>
    <summary><$MTEntryExcerpt remove_html="1" encode_xml="1"$></summary>
    <author>
      <name><$MTEntryAuthor encode_xml="1"$></name>
    </author>
<MTEntryCategories>
    <dc:subject><$MTCategoryLabel encode_xml="1"$></dc:subject>
</MTEntryCategories>
<MTWeblogIfFullRSSContent>
    <$MTEntryAtomContent$>
</MTWeblogIfFullRSSContent>
  </entry>
</MTEntries>
</feed>

iTunes: “Steamroller (Skatenigs)” by Pigface from the album Industrial Mix Machine (1996, 3:29).

Relationships

One of the things that’s always bothered me (and many other people) about social networking sites such as Orkut, Friendster, or any other *ster meme-of-the-moment is the binary nature of their setups — either someone is your friend, or they aren’t. That’s it. Those are your only choices.

My world just isn’t that black and white, sorry.

I was grumbling about this in #joiito last week sometime when Tantek pointed me to XFN, which looks very interesting. Essentially, it takes advantage of a little-used link attribute — specifically, the rel attribute — to define the relationship between the linker and the linkee. Various values have been defined, such as ‘friend’, ‘acquaintance’, ‘met’, ‘spouse’, etc.

For instance, while linking to Dad’s site, I can include the value ‘parent’ in the link (<a href=“http://www.hanscomfamily.com/” title=“The Hanscom Family Weblog” rel=“parent”>like this</a>); linking to Kirsten’s site I can use ‘friend’ and ‘met’ (<a href=“http://www.geekmuffin.com/” title="geek*muffin" rel=“friend met”>like this</a>), linking to Mike I can use ‘acquaintance’ (<a href=“http://mike.whybark.com” title=“mike.whybark.com” rel=“acquaintance”>like this</a>), and so on.

Now this, I like.

Of course, now I have to figure out how to work it into my site. It’ll be easy enough on posts such as this, of course, as I can code the relationship values in as I’m creating the post. What I need to figure out, though, is how I want to attack my blogroll.

Hey, Anil, Mena, Ben, et al — any chance of putting XFN into TypePad‘s People TypeLists? That would be enough to coax me back away from Blogrolling, even if I lose the recent-update highlighting! Currently I’m using the Blogrolling service, which has some definite advantages (easy to update, automatically highlights sites that have been updated recently, etc.). ~~However, there isn’t a way for me to add XFN values to the links there, so if I want to add XFN to my blogroll, I’m going to have to go back to updating it manually. A bit of a bummer, that (not least because quite simply, knowing me, I’m more likely to leave it as-is and forego the XFN niftyness).~~ [As it turns out, you can add XFN to a Blogrolling blogroll if you have a paid “Gold” account. Just go to the ‘edit links’ screen, and for each item, add rel=“whatever” to the ‘Extra Link Attributes’ field. Thanks to Dori for pointing that out in the comments!]{.underline}

Still, at the very least it’s worth playing with, and I’ll do my best to remember to do so on all future posts.

And if that weren’t enough, Jonas pointed out that Tantek and Kevin Marks have proposed another use for the rel attribute called VoteLinks: using values of ‘vote-for’, ‘vote-abstain’, or ‘vote-against’ when linking to an article or post on the web to indicate your opinion of the resource being linked to.

Currently, any automated indexing application (such as the robots/spiders that Google or Technorati use) only see a link as a “vote” in favor of a particular resource — i.e., Site A links to Site B, therefore Site A believes that Site B is useful or provides an important resource of some form or another. While human readers can draw upon the context of a link to decide whether that’s actually the case (while I might link to a page about George Bush, for example, it’s extremely unlikely that I’d be saying anything favorable), the spiders aren’t able to do that — and that’s exactly what VoteLinks aims to correct.

Now all I need to do is come up with some simple “thumbs-up” and “thumbs down” graphics. With those, I can work VoteLinks into my CSS so that links that I’ve designated “vote-for” will get a thumbs-up appended after the link, and links designated “vote-against” will get a thumbs-down appended after the link. Will I do this? Who knows. ;)

Some very interesting toys to play with, each a worthy attempt to add a little more value to everyone’s travels around the web.

iTunes: “She and Mr. Jones (Uncensored)” by Lords of Acid from the album [R]Ejected Tracks (1998, 4:52).

Sponsorship

I’m experimenting with something that I found via Snowman on the TPUGsponsored weblog entries. Three posts on my site now have small, fairly unobtrusive text ads at the bottom of the post, for which I get some small amount of compensation.

I debated a bit back and forth on this when I first read about it, but finally figured it was at least worth a shot. At least these are paid for up front and are given with my permission, rather than just some random piece of comment spam showing up more or less at random.

And I’m certainly not above trying to make the occasional buck or two on all of this (oh, by the way, have you visited any of my three CafePress shops lately? …[ahem]…)! ;)

Now, if only Google would let me into their AdSense program…

iTunes: “No Sense At All” by Khan, Praga from the album Pragamatic (1998, 7:09).

GarageBand is evil

I’ve poked around with GarageBand a bit since I got it, but haven’t created anything major yet. However, it is way too much fun.

It’s also far too easy for me to put together something really, really stupid with it. This is dangerous. Fun — but dangerous.

And here’s the evidence: countrybounce — 71 seconds of banjo and drum loops.

I’m sure I can come up with something better than that given time. But for the moment, this stupid little ditty is it.

Enjoy.

Or don’t.

;)

iTunes: “Must I” by Lizette & from the album This Is (2003, 3:32).

Issue with my comments-only feed

I have no idea if anyone other than myself is currently subscribing to my ‘comments only’ RSS feed, but I’ve noticed an odd issue with it that I haven’t been able to troubleshoot yet. I’ve asked for help on the TypePad User Group, but I wanted to mention it here too, in case anyone else has been noticing this or might be able to point out what I’m doing wrong.

What I’ve been finding is that each item in my comment-only feed is being given the date of the original post that the comment is appended to, rather than the date that the comment was added to my site. For instance, a comment added today to a post from August shows up in my newsreader with the August date instead of today’s.

Here’s the code I’m using for each item in the RSS feed template (the full template code can be found in this post from last week):

<MTComments lastn="20">
<MTCommentEntry> 
<item> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryPermalink encode_xml="1"$>#c<$MTCommentID$></link> 
<description><$MTCommentBody remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTCommentID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<MTCommentAuthorLink show_email="0"> on 
<MTCommentDate format="%b %e, %Y %l:%M %p">: <$MTCommentBody$>]]></content:encoded> 
<dc:date><$MTCommentDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item>
</MTCommentEntry>
</MTComments>

Now, it all looks right to me, and the same basic code seems to be working in all the rest of my templates (for instance, in the ‘full posts plus comments’ RSS feed, each comment begins with a header that lists the correct date). For some reason, though, it’s not working here.

Any ideas?

Update: The issue has been fixed. Turns out that you can’t use an <MTCommentDate> tag inside an <MTCommentEntry> container (much thanks to Jamie Jamison for pointing me to the explanation).

The solution was fairly easy (and the code in my ‘how-to’ post has been updated): I just removed the date display from the body of the RSS item, and moved the closing <MTCommentEntry> tag up a couple lines. Here’s the new version of the above code:

<MTComments lastn="20">
<item> 
<MTCommentEntry> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryPermalink encode_xml="1"$>#c<$MTCommentID$></link> 
<description><$MTCommentBody remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTCommentID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<MTCommentAuthorLink show_email="0">: <$MTCommentBody$>]]></content:encoded>
</MTCommentEntry>
<dc:date><$MTCommentDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item>
</MTComments>

Geek backlash

It was bound to happen eventually. It actually probably started happening a few years ago, but now it’s actually getting news stories — ‘geeks’ are tired of fixing people’s problems.

As MyDoom, the fastest-spreading virus ever, continues to clog e-mail in-boxes and disrupt business, the computer-savvy are becoming openly hostile toward the not-so-savvy who unwittingly play into the hands of virus writers.

The tension over the MyDoom virus underscores a growing friction between technophiles and what they see as a breed of technophobes who want to enjoy the benefits of digital technology without making the effort to use it responsibly.

The virus spreads when Internet users ignore a basic rule of Internet life: never click on an unknown e-mail attachment. Once someone does, MyDoom begins to send itself to the names in that person’s e-mail address book. If no one opened the attachment, the virus’s destructive power would never be unleashed.

“It takes affirmative action on the part of the clueless user to become infected,” wrote Scott Bowling, president of the World Wide Web Artists Consortium, expressing frustration on the group’s discussion forum. “How to beat this into these people’s heads?”

I’ve always counted myself somewhat lucky in this regard. I owe a lot of my geek leanings towards my parents (specifically, my mom, in a somewhat unusual reversal of sterotype), and while I’ve surpassed them in my knowledge base, I can generally rest assured that they’re quite competent enough to avoid many of the more obvious “duh” issues on their own. If they run into something that they can’t solve on their own, while they’re not above tossing a quick question my way to see if it’s something I can solve quickly, they also don’t mind if it’s something that they need to seek “official” assistance with.

The majority of my friends tend to either be at least as computer-literate as I am (if not more so), or at the other extreme, avoiding those infernal machines at all costs. Those few that are in the middle ground — well, if they’re friends with me, they’re likely friends with a lot of other ‘puter geeks at the same time, and will rapidly discover that they have no excuse for incompetence. ;)

That said, though, I’ve certainly seen the backlash coming. One of the big benefits I’ve found to being a Mac user is ducking tech support issues. While I know that I know my way around Windows, when I do get the occasional “why won’t this work?” question from acquaintances or co-workers, it’s very easy to just assume a befuddled expression, mumble something about being a smug virus-free mac-using bastard, toss in a few pointed comments about Windows stability, and go on my merry little way.

(via Jacqueline)

iTunes: “Blue Nun, The” by Beastie Boys, The from the album Check Your Head (1992, 0:32).

Marcel Marceau’s Greatest Hits!

As The Apple Turns points out some of the amusing things that happen on the iTunes Music Store:

Yesterday we mentioned in passing that faithful viewer djsteve had purchased a track that cost him the “best 99 cents [he’d] ever spent.” The joke, of course, was that it was the second track from The Whitey Album by Ciccone Youth, which consists of a minute and three seconds’ worth of silence. To tell you the truth, while we’re amused by the fact that Apple is charging 99 cents for a song full o’ nothing, we’re even more amused by the fact that said track contains the usual digital rights management code to prevent you from playing it on any unauthorized systems. And the most amusing thing of all, of course, is that the song has a thirty-second preview.

Well, as it turns out, the Ciccone Youth track is by no means the only all-silent untune for sale at the iTMS; faithful viewers ben, Scott Levin, and Michael Wyszomierski contributed their own suggestions, too. And you know how Apple recently added a bunch of “iTunes Essentials” playlists to the store, such as “Cover Songs” and “’70s AM Radio Classics”? Well, we’ve compiled all the silent tracks we managed to scrape together into the first AtAT Essentials playlist, “To Be Played At Maximum Volume.”

Turn it up! Turn it up!!!!!

iTunes: “Papa Was A Rolling Stone” by Kickshaw from the album Superstar (1999, 6:45).

RSS Templates for TypePad Pro/MovableType

I just had someone ask how I was able to create the four RSS feeds for my site. Here’s a quick rundown, along with the templates themselves, should anyone else want to do the same thing. All the templates are RSS 2.0, and have been checked with the RSS Feed Validator.

TypePad users will need a Pro account, and will also need to be using an Advanced Template set, as you’ll need to create a new template for each RSS feed you want to add. I give each template a name that’s fairly indicative of which feed it is for, and I make sure that the output file is also named similarly.

Here are the templates I use:

####Default feed: Full text, no comments####

Template Name: RSS 2.0 Full
Output File: index.rdf

<?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0"      xmlns:dc="http://purl.org/dc/elements/1.1/"     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"     xmlns:admin="http://webns.net/mvcb/"     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"     xmlns:content="http://purl.org/rss/1.0/modules/content/"> 

<channel> 
<title><$MTBlogName remove_html="1" encode_xml="1"$></title> 
<link><$MTBlogURL$></link> 
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description> 
<dc:language>en-us</dc:language> 
<dc:creator><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></dc:creator> 
<dc:rights>Copyright <$MTDate format="%Y"></dc:rights> 
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></MTEntries></dc:date> 
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" /> 
<admin:errorReportsTo rdf:resource="mailto:<MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries>"/> 
<sy:updatePeriod>hourly</sy:updatePeriod> 
<sy:updateFrequency>1</sy:updateFrequency> 
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase> 

<MTEntries lastn="15"> 
<item> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryLink encode_xml="1"$></link> 
<description><$MTEntryExcerpt remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTEntryID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<$MTEntryBody$><MTEntryIfExtended><p><a href="<$MTEntryLink$>" title="Continue Reading: <$MTEntryTitle$>">Continue reading <$MTEntryTitle$>...</a></p></MTEntryIfExtended>]]></content:encoded> 
<dc:subject><MTEntryCategories glue=" | "><$MTCategoryLabel remove_html="1" encode_xml="1"$></MTEntryCategories></dc:subject> 
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item> 
</MTEntries> 

</channel> 
</rss> 

####Enhanced Feed: Full posts with comments####

Template Name: RSS 2.0 full plus comments
Output File: fullposts.rdf

<?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0"      xmlns:dc="http://purl.org/dc/elements/1.1/"     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"     xmlns:admin="http://webns.net/mvcb/"     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"     xmlns:content="http://purl.org/rss/1.0/modules/content/"> 

<channel> 
<title><$MTBlogName remove_html="1" encode_xml="1"$>: With Comments</title> 
<link><$MTBlogURL$></link> 
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description> 
<dc:language>en-us</dc:language> 
<dc:creator><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></dc:creator> 
<dc:rights>Copyright <$MTDate format="%Y"></dc:rights> 
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></MTEntries></dc:date> 
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" /> 
<admin:errorReportsTo rdf:resource="mailto:<MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries>"/> 
<sy:updatePeriod>hourly</sy:updatePeriod> 
<sy:updateFrequency>1</sy:updateFrequency> 
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase> 

<MTEntries lastn="15"> 
<item> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryLink encode_xml="1"$></link> 
<description><$MTEntryExcerpt remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTEntryID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<$MTEntryBody$><MTEntryIfExtended><p><a href="<$MTEntryLink$>" title="Continue Reading: <$MTEntryTitle$>">Continue reading <$MTEntryTitle$>...</a></p></MTEntryIfExtended><MTEntryIfAllowComments><p>Comments on this Entry:</p><MTComments><h4><MTCommentAuthorLink show_email="0"> on 
<MTCommentDate format="%b %e, %Y %l:%M %p">:</h4><MTCommentBody></MTComments></MTEntryIfAllowComments>]]></content:encoded> 
<dc:subject><MTEntryCategories glue=" | "><$MTCategoryLabel remove_html="1" encode_xml="1"$></MTEntryCategories></dc:subject> 
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item> 
</MTEntries> 

</channel> 
</rss> 

####Short Feed: Excerpts Only####

Template Name: RSS 2.0 Excerpts
Output File: excerpts.rdf

<?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0"      xmlns:dc="http://purl.org/dc/elements/1.1/"     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"     xmlns:admin="http://webns.net/mvcb/"     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"     xmlns:content="http://purl.org/rss/1.0/modules/content/"> 

<channel> 
<title><$MTBlogName remove_html="1" encode_xml="1"$>: Excerpts</title> 
<link><$MTBlogURL$></link> 
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description> 
<dc:language>en-us</dc:language> 
<dc:creator><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></dc:creator> 
<dc:rights>Copyright <$MTDate format="%Y"></dc:rights> 
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></MTEntries></dc:date> 
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" /> 
<admin:errorReportsTo rdf:resource="mailto:<MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries>"/> 
<sy:updatePeriod>hourly</sy:updatePeriod> 
<sy:updateFrequency>1</sy:updateFrequency> 
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase> 

<MTEntries lastn="15"> 
<item> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryLink encode_xml="1"$></link> 
<description><$MTEntryExcerpt remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTEntryID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<$MTEntryExcerpt$>]]></content:encoded> 
<dc:subject><MTEntryCategories glue=" | "><$MTCategoryLabel remove_html="1" encode_xml="1"$></MTEntryCategories></dc:subject> 
<dc:date><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item> 
</MTEntries> 

</channel> 
</rss> 

####Comments only feed####

Template Name: RSS 2.0 Comments
Output File: comments.rdf

Update: The code here has been slightly altered since the original posting to account for an issue with incorrect dates.

<?xml version="1.0" encoding="iso-8859-1"?> <rss version="2.0"      xmlns:dc="http://purl.org/dc/elements/1.1/"     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"     xmlns:admin="http://webns.net/mvcb/"     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"     xmlns:content="http://purl.org/rss/1.0/modules/content/"> 

<channel> 
<title><$MTBlogName remove_html="1" encode_xml="1"$>: Comments</title> 
<link><$MTBlogURL$></link> 
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description> 
<dc:language>en-us</dc:language> 
<dc:creator><MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries></dc:creator> 
<dc:rights>Copyright <$MTDate format="%Y"></dc:rights> 
<dc:date><MTEntries lastn="1"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></MTEntries></dc:date> 
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=<$MTVersion$>" /> 
<admin:errorReportsTo rdf:resource="mailto:<MTEntries lastn="1"><$MTEntryAuthorEmail$></MTEntries>"/> 
<sy:updatePeriod>hourly</sy:updatePeriod> 
<sy:updateFrequency>1</sy:updateFrequency> 
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase> 

<MTComments lastn="20">
<item> 
<MTCommentEntry> 
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title> 
<link><$MTEntryPermalink encode_xml="1"$>#c<$MTCommentID$></link> 
<description><$MTCommentBody remove_html="1" encode_xml="1"$></description> 
<guid isPermaLink="false"><$MTCommentID$>@<$MTBlogURL$></guid> 
<content:encoded><![CDATA[<MTCommentAuthorLink show_email="0">: <$MTCommentBody$>]]></content:encoded> 
</MTCommentEntry>
<dc:date><$MTCommentDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></dc:date> 
</item>
</MTComments> 

</channel> 
</rss>