Rex Hammock: FeedDemon’s "Popular Topics" is like a personalized Techmeme

My friend Rex Hammock writes about FeedDemon’s "Popular Topics":

"The FeedDemon feature is, in effect, a meme-tracker. However, instead of analyzing news stories and relevant blog posts that are being linked to by a mysterious universe of topical-bloggers (or folks trying to game it), the feature analyzes the stories that are being linked to by those in a network of bloggers you choose — those to whose RSS feeds you’ve subscribed…In other words, it’s like having a Techmeme that is “memetracking” topics important to just those bloggers you desire to follow, rather than all bloggers who post on the topic."

I have to say, it’s nice to see popular topics getting some attention.  The first time I showed this feature to anyone was at BloggerCon IV in 2006, and I remember Chris Pirillo being impressed by it.  Popular topics has been greatly improved since then, especially in the new FeedDemon 2.6 pre-release, but I’ve seen very few comments about it.

IMO, a "personal memetracker" like FeedDemon’s popular topics is a killer feature for aggregators.  It’s something we should expect in our RSS readers, because the more information we subscribe to, the more we need a feature that shows us what the people we’re paying attention to are paying attention toDare Obasanjo considers it one of the top five features for the next version of RSS Bandit, and he nails why it’s important (emphasis mine):

"I’m now officially at the point where I don’t have enough time to read all the feeds I have in my subscription list anymore. For the most part, I’ve gotten around this by browsing programming.reddit, Techmeme and Sam Ruby’s MeMeme about once or twice a day. Although they are all great, the problem I have is that there are parts of the blogosphere that none of these sites is good at tracking. For example, none of these sites is really on top of the Microsoft employee blogosphere which I’m interested in for obvious reasons.  I’ve been talking about building a feature similar to FeedDemon’s popular topics for a long time but I’ve now gotten to the point where I don’t think I can get a lot of value out of my blog subscriptions without having this feature."

I’m willing to bet that over the next year or two we’ll see personal memetrackers appear in more desktop aggregators, and despite the computational and scaling problems, it wouldn’t surprise me if more web-based aggregators also offered this feature.

ANN: FeedDemon 2.6 RC1 Pre-Release

Although I haven’t mentioned it here in my blog, FeedDemon 2.6 has been in beta for several weeks.  Now that the first release candidate of FeedDemon 2.6 is out, it’s finally time to blog about it.

As you can see from the release notes, there are a lot of changes in v2.6.  Some of these changes – such as the vastly improved offline and prefetching features – are fairly substantial, but my primary focus with this release was to simplify FeedDemon, tidy it up, and generally make it faster and easier to use.

Under the hood, FeedDemon 2.6 offers some nice performance boosts.  In particular, FeedDemon’s popular topics is an order of magnitude faster than it was.  Newspaper rendering is also noticeably faster, and the redesigned offline prefetch is far less CPU-intensive than before.

Information junkies will appreciate the new attention report, which provides an overview of the attention you’re giving to each of your feeds (a great way to uncover feeds you can unsubscribe from).  And I think the new Firefox-inspired inline search toolbar (Ctrl+F) will be a hit not only with Firefox users, but also with Internet Explorer users who never escaped the confines of IE’s "Find" dialog.

But the numerous UI improvements will be the most obvious changes – you’ll find a ton of little UI tweaks in this release which add up to a much nicer experience.  I also spent quite a bit of time rethinking FeedDemon’s newspapers to make them even more readable.  Among the improvements is a redesigned "headlines view," which enables rapidly scanning headlines for interesting articles.  Here’s an example:

 

OK, that’s enough of a sales pitch :)  If you’d like to give the FeedDemon 2.6 pre-release a try, just stop by the FeedDemon Beta Site to get it.

"Funny" Error Pages Suck

One of the more annoying trends in "Web 2.0" apps is the (mis)use of humor in error pages.

Many of my readers know what I’m talking about – you logon to your favorite social web app, feed search engine, photo site, etc., only to see an upside-down bird or some other goofy picture alongside a "funny" error message.

I hate this. With a passion.

It’s like the creators of the site are saying, "Hey, it’s a Web 2.0 app, so it goes down all the time – isn’t it funny?!"

No, it’s not funny when a site you’re relying on to do your job or communicate with others goes down. I don’t know about you, but I wouldn’t want my operating system, word processor, or development tool to tell me jokes when they crash.

Now, don’t get me wrong. I don’t mind a light-hearted error page on a site that rarely has problems. But many of the sites that have goofy error pages are among the least reliable. They go down all the time, so you end up seeing the same tired attempt at humor over and over and over. It’s like that drunk idiot you see at some parties who keeps telling the same joke to everyone within earshot. The joke might be funny the first time you hear it, but by the end of the night you want to decapitate the annoying bastard.

So here’s the rule: any site that goes down more than twice a week has to replace funny error messages with a page that lists the home phone numbers of the people in charge. Not only would that guarantee that more effort would be taken to keep the site running smoothly, but it would also give us someone to call when we want to share a joke we just heard ("Hey, sorry for the interruption, but didja hear the one about…")

FeedDemon and RSS Comments

Just noticed that Dave Winer is wondering which feed readers support the RSS 2.0 comments element, so I thought I’d chime in and mention that FeedDemon is among the many aggregators which support it.  When an item contains a comments element, FeedDemon displays a "comment bubble" icon which links to the page containing the comments for that item.

In addition to the standard RSS 2.0 comments element, FeedDemon also supports wfw:comment, wfw:commentRss, slash:comments and the Atom threading extensions.

When an item uses slash:comments or the Atom threading extensions, FeedDemon displays a comment count next to the comment icon, and the count is refreshed when the feed updates.  Here’s an example from my feed, which shows an item with four comments:

Finally, FeedDemon displays the orange feed icon with a small comment bubble superimposed on it for items which expose a separate feed for comments on that item (via wfw:commentRss or an Atom "replies" link).  Subscribing to the comment feed in FeedDemon is as simple as clicking this icon.  Here’s an example from Sam Ruby’s feed showing both a comment count and a comment feed:

Another Weekend Eaten by Guitar Hero

Once again a weekend’s big plans were tossed aside by Guitar Hero.

This time it was the brand-spanking-new Guitar Hero III that laid our plans to waste.  We picked it up on Friday, and didn’t stop playing until the kids went to bed last night.  Oh, alright, I’ll admit it – my kids stopped playing at bedtime, but I kept thrashing away long after they were asleep.

Overall I like the set list in GHII better, but GHIII does have some great additions like "One" (finally, Metallica on Guitar Hero!) and "Cliffs of Dover" (one of my favorite guitar instrumentals).  We had a blast getting through the final "boss" battle, and even struggled our way to the end of the finger-crippling "Through the Fire and Flames" (on medium, of course – and we never did better than three stars).

Today we’re soaking our hands in ice water, hoping to be healed well enough to play again next weekend.

The Best Way to Increase Your Feed Readership…

…is to use great titles.  Seriously.

Here’s an example: Steve Rubel’s "The Web 2.0 World is Skunk Drunk on Its Own Kool-Aid" rant caught my eye yesterday because of its great title.  After reading Rubel’s post, I added it to my link blog, where it was spotted by Steven Hodson.  As Hodson writes, he unsubscribed from Rubel’s feed a while ago, but he just resubscribed based on the strength of that one post – and I’ll wager that the post’s title is why it got his attention.

As people subscribe to more feeds, the more they stop reading every unread item and instead just skim the titles looking for something that interests them.  If you use boring titles for your posts, skimmers like myself are likely to skip right over them.

In addition, once people get used to reading feeds, they start subscribing to link blogs and search feeds which aggregate content from all over the web.  People who aren’t subscribed to your feed often find you through these aggregate feeds, and it’s the strength of your titles that leads them to read what you have to say.

Now, I’m not about to recommend using sensationalist, "National Enquirer"-like titles – that would just pollute your name/brand, leading people to unsubscribe from your feed.  But descriptive, catchy titles get the attention of readers who might otherwise never see your words of wisdom.

So if you’re going to take the time to write a blog post, make sure to also take the time to give it a good title.  Yeah, I know that sounds painfully obvious, but a quick glance of your unread items should provide plenty of examples of interesting posts that go ignored because of lousy titles.

Adding Inline Search to FeedDemon (After Fixing IHTMLTxtRange Select Bug)

One of the features I’ve been planning to add to the upcoming FeedDemon 2.6 is an inline search toolbar similar to the one in Firefox, and I’m pleased to announce that I’ve finally coded it.  But it was harder that I anticipated, primarily due to a weird IE bug (more about that later). 

In the current version of FeedDemon, hitting Ctrl+F in the browser displays IE’s "Find" dialog, shown below:

While this does the job, it’s not nearly as useful as Firefox’s inline search, which enables highlighting every instance of a keyword on the current page.  So I decided to intercept Ctrl+F and display my own inline search toolbar (click for full screenshot):

 

After a few hours of coding, I had it working great – or so I thought.  Then I did an inline search for the word "the" on CNN’s web site, and FeedDemon came crashing down.  An inline search on Techmeme had the same result.  Boom!


Note: The rest of this post is intended for frustrated developers Googling for help on the problem I ran into.


I traced the crash to a call to the Select method of MSHTML’s IHTMLTxtRange interface.  Now, you might think I’d be happy to figure out where the bug was, but I wasn’t – I’m never happy to discover that a bug resides in code I didn’t write, since that means hours of trial-and-error (literally) trying to resolve it.

After numerous false starts, I finally discovered that the crash occurred when IHTMLTxtRange.FindText locates a match in text that isn’t visible (inside a hidden DIV, for example).  Using the Select method on a visible text range works fine, but using it on a range that’s hidden results in the less-than-helpful exception "could not complete the operation due to error 800a025e."

Luckily, once I realized the problem, I was able to work around it with some hackish code.  The first step was to catch the exception, and then figure out the next visible element after the hidden text range so I could perform a “FindText” on it (in other words, skip over the hidden match).  In Delphi code, it looks something like this:

// ...code prior to this calls IHTMLTxtRange.FindText to locate the keyword...

// SafeSelectRange wraps IHTMLTxtRange.Select and returns False when it raises an exception


if SafeSelectRange(txtr) then

   Result := True

else

begin

   // get the parent element of this text range

   if (txtr.parentElement = nil) then

      exit;

   // find the element after this one

   nNextSrcIdx := txtr.parentElement.sourceIndex + 1;

   if nNextSrcIdx > iDoc2.all.length then

      exit;

   elNext := iDoc2.all.item(nNextSrcIdx, null) as IHTMLElement;

   if elNext = nil then

      exit;

   // move the text range to this element

   txtr.moveToElementText(elNext);

   // retry the 'FindText' call again (but don't retry forever)

   inc(nNumRetries);

   if nNumRetries < MAX_RETRIES then

      bRetry := True;

end;

I’ve stripped a lot of the logic from this code to make it more presentable, but hopefully this is enough to help other developers running into the same hair-pulling bug.

NOINDEX at the Item Level

Dave Winer writes about how he’d like a way to exclude specific items in his RSS feed from appearing on TechMeme, and suggests a TechMeme namespace for RSS as one possibility.

Rather than create a TechMeme-specific namespace, I’d prefer to see the existing noindex meta tag adapted for use on a per-item basis. For example, right now you can add this to your feed to prevent search engines from spidering it:

<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />

I use this on the feed for my link blog (since my link blog contains items from other feeds, using noindex helps feed search engines prevent duplication) and Yahoo and Google both honor it.

So how about we adapt this for use on a per-item basis, so that individual items can be excluded without excluding the entire feed? Search engines and sites like TechMeme could simply ignore any items that are flagged with noindex.

Of course, this approach wouldn’t prevent only TechMeme from indexing an item, so it doesn’t entirely fulfill Dave’s request. But if preventing a specific site from indexing an item is something that feed creators want, then perhaps a user-agent attribute is needed (similar to the User-agent line in robots.txt).

Where’s the TopStyle 3.5 Trial Version?

Now that TopStyle 3.5 is out, a number of customers have asked us where they can download the trial version. 

I generally like to wait a few weeks after a product release before putting out a trial version, so right now a trial of TopStyle 3.5 isn’t available.  But there will be one in a few weeks, once the rollout of TopStyle 3.5 has settled down.  I’ll post an announcement here when it’s available.

ANN: TopStyle 3.5 Final Release

At long last, the final release of TopStyle 3.5 is now available. My thanks go out to everyone who helped during the lengthy beta cycle – I hope you enjoy the new version!

As you can see from the release notes, version 3.5 isn’t a minor upgrade – it offers a ton of new features, improvements and fixes. It could easily have been called TopStyle 4.0, but I know customers have been waiting a long time for a new TopStyle, so we’ve named it v3.5 and made it a free upgrade from v3.0.

To get it, just stop by the TopStyle Registered Download page, then enter the serial number you received if you purchased TopStyle through NewsGator. If you purchased through another online store (such as RegNow), enter the email address you used when you placed your order. Note that there’s no need to uninstall the previous 3.x version before upgrading – just install v3.5 directly on top of it.

Top five new features in TopStyle 3.5:

  1. Box Spy – exposes an HTML tag’s margins, padding and content box as you mouse over it in the preview
  2. Live Preview – apply the current style sheet to an external URL
  3. Replace in Files – as requested by countless former HomeSite users who loved its "Extended Replace" feature
  4. New style definitions for Firefox 2, IE7, Safari 2 and Opera 9
  5. PNG images are now supported by the thumbnail viewer

Top five improvements in TopStyle 3.5:

  1. Faster performance throughout
  2. Insight now displays a list of HTML entities when & key is pressed
  3. Hitting TAB when text is selected now indents the selection (I know this seems like a minor improvement, but enough people asked for this that I figured it deserved to be included here)
  4. Support for printing in color
  5. Thumbnail viewer is now embedded in the file explorer for easier access

Top five fixes in TopStyle 3.5:

  1. Site reports and style insight now correctly support multiple class names (ex: <div class="class1 class2">)
  2. Style sweeper now does a much better job preserving CSS comments
  3. Thumbnail viewer now always shows the correct image dimensions regardless of the system font size
  4. W3C HTML Validator no longer fails due to invalid content-type
  5. A myriad of fixes to make TopStyle Vista-compatible

If you have any questions or comments about the new TopStyle, please stop by our support forums and we’ll follow up with you ASAP.