Twittering Again

Last year I tried out Twitter while attending SXSW, but I stopped using it when the conference was over.  Twitter was fun at SXSW, but it seemed kind of pointless afterwards.  It was too much useless information for me to handle.

A few weeks ago I decided to try Twitter again, and this time I changed how I used it.  At SXSW I followed too many prolific "A-listers," but this time around I’ve chosen to follow friends, co-workers, developers, and a random assortment of people I’ve met (online or otherwise).  And you know what?  I’m actually liking Twitter now.  I don’t know why, but I find it strangely fun to hear what the people I’m following are up to, without the pressure of having to reply to them all.

If you’d like to follow me, here’s a link to my Twitter profile page.  As you’ll discover, I rarely use Twitter for "serious" comments – most of my tweets are senseless remarks about the stuff going on around me.  But if you’re a fan of senseless remarks, feel free to listen in :)

My Favorite Macworld Photo…

…is this one, which I took inside an elevator at the Marriott hotel near the conference center.  The elevator was fitted with a display screen which usually showed advertisements and news headlines, but for several hours it showed a Windows application error dialog instead.

Needless to say, Macworld attendees got a big kick out of this.

A Windows Developer Returns from Macworld

Last week I attended my first Macworld, but it won’t be my last.  I had a great time, in large part due to the hospitality of Brent F. Simmons and a host of his fellow Mac developers (see you at Denny’s next year, folks!).

The announcements from Macworld this year paled in comparison to last year’s iPhone announcement, but the buzz among attendees was still very high.  It was especially high among developers, which I found somewhat surprising since my impression is that Apple doesn’t do nearly as much for third-party developers as Microsoft does.  In fact, more than one Mac developer I spoke with stated that they develop for the Mac not because of Apple but in spite of it.

Of course, it’s hard not to be excited when you see your potential customer base growing over the next few years.  Several developers I met believe – as I do – that the number of Mac users will increase substantially, thanks in large part to the fact that more and more people are being exposed to the Apple UI via the iPod and the iPhone.

Last week I also had a brief tour of the Mac development tools, and I have to say, I found them underpowered compared to Windows development tools.  What I saw of the development process reminded me of the early days of Visual C++ Windows development.  However, it could be argued that this is offset by the powerful APIs that the Mac exposes to its developers.  And I have to admit, I could be convinced to downgrade my development tools to get access to thing like Core Animation.

Speaking of Core Animation, my favorite product demo at Macworld was Plasq’s upcoming Comic Life Magic, which really shows off how to effectively use Core Animation to improve a product’s UI.  I’d never get any work done if I had that application.

Of course, the downside of Macworld for me was that – as with pretty much every tech conference I attend – connectively was dismal.  So, my apologies if you’re waiting for me to reply to your email, blog comment, forum post, etc.  I’m getting to it, I promise :)

A Windows Developer Goes to Macworld

That’s right, despite being a Windows developer since the early 1990’s, I’m headed to Macworld.  No, I’m not dropping Windows (at least not yet), but I do want to shake myself up a bit by hanging out with "the other side" for a while. 

If you’re also at Macworld, you should be able to spot me without much trouble – I’ll be one of few people there huddled over a Dell laptop.

PS: I’m going to throw a hissy fit if I don’t come home with an iPhone SDK.

Brent Simmons is a Mac Virus

Just over two years ago, Brent Simmons – creator of NetNewsWire for the Mac – joined NewsGator, and since then I’ve noticed shiny new Apple computers slowly but surely infiltrating our office. 

Like a virus, Brent has secretly spread his Apple cult within our formerly Windows-only company.  And to top it off, our founder now shows all the signs of becoming a Mac zealot.

Oh, and I’ve been infected, too: I’m seriously thinking about buying a Mac Pro after FeedDemon 2.6 is released.  Whether I’ll develop anything for the Mac remains to be seen, but I have to admit I’d like to escape the DLL and device driver hell of Windows for a while.

How Does FeedDemon Calculate Attention?

In a recent blog comment, Paul M. Watson asked:

"I’d be interested in more detail on how you compute the scores [which determine a feed’s attention]. Nothing that gives away your competitive edge of course but just some generalizations of what you are tracking that amounts to attention."

FeedDemon’s algorithm for determining a feed’s attention rank has changed since I first wrote about it, but it’s still very simple.  I certainly don’t think I’ll be giving away any competitive edge by posting details, so here it is:

Feed Attention Rank =
(NumFeedVisitsExplicit div 2)
+ (NumFeedVisits div 4)
+ (NumPostVisits div 5)
+ (NumFollowedLinks div 3)
+ (NumEnclosureVisits div 2)
+ (NumPostsEverFlagged * 2)
+ (NumPostsEmailed * 2)
+ (NumPostsAddedToNewsBins * 2)
+ (NumPostsAddedToSharedNewsBins * 3)
+ (NumPostsAddedToWatches)


   NumFeedVisitsExplicit = #times user visited a feed by explicitly clicking it
NumFeedVisits = #times user visited a feed through automatic navigation (ex: clicking "Next")
NumPostVisits = #times a post in that feed was visited
NumFollowedLinks = #times an external hyperlink inside a post was clicked
NumEnclosureVisits = #enclosures (podcasts) downloaded from the feed
NumPostsEverFlagged = #posts user ever flagged
NumPostEmailed = #posts forwarded via email
NumPostsAddedToNewsBin = #posts added to a clippings folder ("news bin" in v2.5)
NumPostsAddedToSharedNewsBin = #posts added to a clippings folder that has a shared RSS feed
NumPostsAddedToWatches = #posts picked up by a FeedDemon watch

One of Paul’s concerns was that high output blogs which he skims through without reading would get ranked too highly. I attempt to counteract this in several ways, with admittedly mixed success.  The most obvious way is by giving post visits the lowest weight in the algorithm (NumPostVisits div 5). And I give the highest weight to actions such as flagging, clipping or emailing a post, since those actions are proof that you find the post valuable.

One potentially important thing that’s missing here is that I don’t "decay" attention over time, but in reality this happens automatically.  For example, if you stop paying attention to a feed that has a high attention rank, its rank will stop increasing, whereas the rank of feeds you do still pay attention to will continue to increase.

This is illustrated by the screenshot from my recent post about the attention report in FeedDemon 2.6, which shows that I was paying the most attention to the feed for the TopStyle Support Forum (since TopStyle 3.5 was in beta at the time).  Now that TopStyle 3.5 has been released and I’m working on FeedDemon 2.6, the TopStyle feed has fallen to second place behind my feed for the FeedDemon Support Forum:

I’m curious as to how accurate FeedDemon customers find the new attention report.  Does it for the most part reflect the attention you’re paying to your feeds, or do you find it wildly out of sync with the feeds you’re really paying attention to?

"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…")

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="" 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).