December 2003 Archives

Since publishing my post "Improved Extended Entry Script and Template Code for MT", a couple of complaints have surfaced regarding what I wrote.

In an MT Forum thread, LisaJill posted a link to my post. In response, Girlie (a forum moderator) responded with this:

I'm all for improved versions of code, but I just don't think it's necessary to trash the person or persons whose code you're improving in order to do it.

Girlie mischaracterized what I wrote. I did not "trash the person" - I criticized the provided code. The criticism, although harsh, was rightly deserved. I stand behind every word I wrote. What should not have been necessary was the time and effort I put into fixing and documenting the code. I do not believe it was appropriate for a forum moderator to post her (misleading) personal opinion of my post in the forum. That is what her weblog and my comments are for.

In another MT Forum thread, I learned that ScriptyGoddess had posted an updated Show/Hide Comments Script, using my modified code as the base for her new script. In that post, ScriptyGoddess remarked:

(Side note: to Mr. Tweezer's complaint in his post about my not making it easier for him to use my scripts... I'm sorry- I'll refund your money... oh wait - this site is free and actually here for my OWN PERSONAL reference... Sometimes I even drop code here without explanation - just so I can grab it later. The "disclaimer" in the sidebar also says "we are volunteers, not paid tech support. In the end, you're on your own.")

My complaint with the original script was that it was hard to understand, not to use.

I don't know why ScriptyGoddess cites her disclaimer. I did not ask her for anything, not even to bother notifying her of the problems I found in the code. Considering that the script has been posted for 18 months (since June, 2002), the script is widely known and linked to frequently in the MT Forums and elsewhere, the disclaimer on ScriptyGoddess' web site, and the fact that the script had not been fixed even at this time, communication of any sort seemed pointless.

I spent quite a few hours learning to understand how the script worked, repeatedly testing and debugging it, then documenting my changes. I don't think this work should have been necessary, especially since the script has been around for such a long time. Since I did the work to debug it, fix it, and document it, I have earned the right to voice my opinion on the original code. It is not a service to anyone to post flawed code, free or not, supported or not.

If I was to make any request of ScriptyGoddess, it would not be for a refund - it would be to fix the code. I don't really care if she fixes it or not. To those who don't like what I wrote, and still think ScriptyGoddess' (flawed) code is so great, you are more than welcome to link to and use her code. But don't read things into my post that aren't there.

Update 10-Jan-2004: I looked at ScriptyGoddess' post today just to see if there were any interesting comments. She has edited the post:

(Side note: to Mr. Tweezer's complaint in his post about my not making it easier for him to use my scripts... I'm sorry- I'll refund your money... oh wait - this site is free and actually here for my OWN PERSONAL reference... Sometimes I even drop code here without explanation - just so I can grab it later. The "disclaimer" in the sidebar also says "we are volunteers, not paid tech support. In the end, you're on your own." Seems he decided to take that part down. How nice.)

Sorry, but I took nothing down. The entry is as I originally posted, except for a couple edits to correct and clarify my explanation of the invalid XHTML in the original code. It looks like my remark "But don't read things into my post that aren't there." was pretty much on target.

Upgraded to MT 2.65

Just finished upgrading MT to the latest version; the upgrade seems to have gone off without a hitch. Looking at the [change log]http://www.movabletype.org/docs/mtchanges.html#2.65%20(2003.12.18)), these items were the most interesting to me:

1. New tags

<MTIfNonEmpty>

Use the MTIfNonEmpty tag to check whether the value of another tag would not be empty. The other tag name should be supplied in the tag attribute to this tag. This is a conditional tag, so the markup inside of the tag will be displayed if the condition (a non-empty value for the result of evaluating tag) is true.

For example:

<MTIfNonEmpty tag="MTEntryAuthorURL">
The author's homepage URL is <$MTEntryAuthorURL$>.
</MTIfNonEmpty>

<$MTEntryModifiedDate$>

The modification date of this entry. Like all date tags, this tag takes optional format and language attributes. See Date Tag Formats for more information.

2. Atom

"Added Atom syndication feed template (atom.xml) and auto-discovery for Atom feed to main index template."

I don't know if I should be all excited about Atom or not. It's yet another template and file format to keep track of, not to mention my news reader cannot read it. From what I can tell, support for Atom in newsreaders is not yet widespread. I haven't decided yet whether to implement an Atom template or not.

3. Security

  • Fixed security issue with XML-RPC server.
  • Fixed relay issue with mt-send-entry.cgi.

The security updates are the main reason I decided to upgrade now instead of waiting for MT 3.0.

Daily Pundit Trackback

Bill Quick wants to set up his weblog to display trackbacks inline. I am curious to see if it's working, and if not, offer to help out this fellow San Francisco blogger (if he isn't already deluged with tips).

Based on a question posted by George Hotelling on his weblog ("90% Crud"), I have created an MT template to output an RSS feed which combines both comments and trackbacks iinto a single feed, using the SimpleComments plugin.

Here's the template:

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">
  <channel>
    <title><$MTBlogName$>: SimpleComments</title>
    <link><$MTBlogURL$></link>
    <description>Latest comments/trackbacks for <$MTBlogName$></description>
    <language>en-us</language>
    <lastBuildDate><$MTDate format="%a, %d %b %Y %H:%M:%S"$> <$MTBlogTimezone no_colon="1"$></lastBuildDate>
    <generator>Movable Type v<$MTVersion$></generator>
<MTSimpleComments lastn="20" sort_order="descend">
    <item>
<MTSimpleCommentIfComment>
      <title>Comment on &quot;<MTSimpleCommentEntry><$MTEntryTitle remove_html="1" encode_xml="1"$></MTSimpleCommentEntry>&quot;</title>
      <link><MTSimpleCommentEntry><$MTEntryLink$></MTSimpleCommentEntry>#comments</link>
      <description><$MTCommentBody encode_xml="1"$>
        &lt;p&gt;- <$MTCommentAuthor encode_xml="1"$>&lt;/p&gt;</description>
      <guid isPermaLink="false">comment<$MTCommentID pad="1"$>@<$MTBlogURL$></guid>
      <pubDate><$MTCommentDate format="%a, %d %b %Y %H:%M:%S"$> <$MTBlogTimezone no_colon="1"$></pubDate>
</MTSimpleCommentIfComment>
<MTSimpleCommentIfTrackback>
      <title>Trackback: &quot;<$MTPingTitle remove_html="1" encode_xml="1"$>&quot;</title>
      <link><$MTPingURL$></link>
      <description>&lt;b&gt;Excerpt:&lt;/b&gt; <$MTPingExcerpt encode_xml="1"$>&lt;br /&gt;
      &lt;b&gt;Weblog:&lt;/b&gt; <$MTPingBlogName encode_xml="1"$>&lt;br /&gt;
      &lt;b&gt;Tracked:&lt;/b&gt; <$MTPingDate format="%B %d, %Y %I:%M %p"$>&lt;br /&gt;
      <MTSimpleCommentEntry>&lt;b&gt;TB to post:&lt;/b&gt; &quot;&lt;a href="<$MTEntryPermalink$>"&gt;<$MTEntryTitle encode_xml="1"$>&lt;/a&gt;&quot;</MTSimpleCommentEntry></description>
      <guid isPermaLink="false">tbping<$MTPingID zero_pad="6"$>@<$MTBlogURL$></guid>
      <pubDate><$MTPingDate format="%a, %d %b %Y %H:%M:%S"$> <$MTBlogTimezone no_colon="1"$></pubDate>
</MTSimpleCommentIfTrackback>
    </item>
</MTSimpleComments>
  </channel>
</rss>

If you would like to use this template to create your own combined comments/trackbacks RSS feed: Download and install the SimpleComments plugin if you do not already have it. Create a new index template, give it an output file name like "simplecomments.xml", and copy the above code into the template. Save the template then rebuild.

I like this idea so much that I am going to use this as my comments/trackbacks RSS feed instead of the separate comment and trackback feeds that I was using before.

Update: Before I posted the above template, I had created a combined comment/trackback RSS feed and validated it. Later, I tried to subscribe to the feed with Radio Userland's RSS news aggregator, but the aggregator did not like it - it reported an error "field '/pcdata' not defined". This string does not appear anywhere within my RSS feed, although "/p" does as well as "CDATA".

For every field I had included in my RSS template that used the encode_xml="1" attribute, MT was encoding the data by enclosing it in a CDATA block. Radio Userland's aggregator does not seem to like this method of encoding. To allow my feed to be read in Radio Userland's aggregator, I enabled the "NoCDATA 1" option in my mt.cfg file. With this option enabled, Radio Userland's aggregator now reads my RSS feed with no complaints.

Userland has their own RSS Validator where feeds can be tested to see if Radio Userland's aggregator will successfully read them.

Update 10-Jun-2004: RSS Combined Comments/Trackback Feed template updated:

  • Comment at top of feed removed
  • ttl element removed - not necessary