Ramblings from the creator of HomeSite, TopStyle, FeedDemon and Glassboard Android.

Wednesday, February 28, 2007

Earlier this month, Coding Horror's Jeff Atwood asked, "Does Offline Mode Still Matter?" To which I'll reply, "yes, to some FeedDemon customers it definitely does." Just read the comments in response to my post about improving FeedDemon for offline use for examples of these customers.

Admittedly, the number of FeedDemon users who need an offline mode is relatively small, but those who do need it consider it an extremely important feature. And I've heard from a number of FeedDemon customers who never thought its offline mode would come in handy, but were later delighted to discover that they could still read their feeds:

...after their Internet connection died

...while attending a conference with poor WiFi (that's most conferences, in my experience)

...on an airplane

...during a long commute to work

etc.

While it would be nice if Internet connectivity was everywhere, it's not - so offline mode still matters a great deal.

Tuesday, February 27, 2007

Lately I've noticed a lot of feeds that contain embedded videos which fail to provide alternate content for readers who can't view the videos. For example, a number of feeds use the HTML <embed> tag to embed video objects but neglect to include <noembed> sections. The end result is a less-than-optimal experience for many people, including:

Users of Windows-based feed readers such as FeedDemon which employ Internet Explorer's local zone lockdown for security (which prevents embedded objects from displaying)

Users of Internet Explorer 7 (the feed view in IE7 uses a similar security lockdown which prevents embedded videos from playing)

Users of Web-based feed readers who have tightened their browser's security

If nothing else, simply add a <noembed> section which links to the actual video, as this example demonstrates:

Sunday, February 18, 2007

I'm taking the week off, but before I skip town I want to leave a teaser of what's coming in the next FeedDemon. In addition to the features mentioned in the previous teaser, there are a couple of other noteworthy additions.

Synchronized News Bins

FeedDemon's ability to synchronize with NewsGator Online means that your subscriptions are available on any computer you use. But in the past your news bins have not been synchronized, so items you added to a news bin were only available on the computer you were using when you added them. As you can see from the screen shot below, this limitation is finally being addressed:

Oh, and there's a nice bonus feature here: you'll also be able to share your news bins as RSS feeds, so others can subscribe to them.

Who's Linking Here?

One of my favorite things about FeedDemon is that it's a hybrid reader which combines the power of a desktop application with the data mobility of a web-based one. This also means that FeedDemon isn't limited to showing only desktop-based data - it can also show aggregated data from NewsGator Online.

The next release of FeedDemon takes advantage of this by adding a "Who's linking here" icon () next to each article. Clicking this icon shows you who's talking about that article, with a separation between links within your subscriptions and links in everyone's subscriptions (in other words, you can see the feeds you're subscribed to which link to that article, as well as feeds that everyone in NewsGator Online is subscribed to which link to that article). Here's a screen shot:

This feature is especially handy in FeedDemon's "Popular Topics" personal memetracker, because it enables seeing who else is linking to the most popular articles in the feeds you read (a great way to find interesting new sites).

Looking at my archives, I realize that I've written about my son Isaac more often than I've blogged about my incredible daughter Hannah. Hannah, I know you'll read my archives when you're older, so please understand that this isn't due to lack of love - dads just tend to be protective of their little girls, that's all (well, that and I have a bad habit of getting into life-threateningsituations with Isaac, which make great blogging material).

It would be hard to describe Hannah here, since you have to see her in action to really know how special she is. She is incredibly full of life, a bundle of manic, comic energy that whirls around our house like the world's most beautiful tornado. You can already tell that she'll become a heartbreakingly pretty woman, but it's her brain that will get her places. She has the kind of mind that can make the most obscure connections, and that to me is a sign of a budding creative genius.

Before Hannah began school this year, we told her teacher that she might start out shy, but eventually she would rule the classroom. I'm not sure her teacher believed us then, but she does now - Hannah can be shy when she first meets people, but given time, she always end up in charge.

So Hannah, this post is dedicated to you. You're only six, yet you've already given me enough love and laughter to last a lifetime. Part of me wants to keep you at this age forever, but the rest of me can't wait to see you blossom.

If you ended up subscribing to my RSS feed as a result, I have to warn you: I'm not a regular guy. That is, I don't post on a regular basis. One week I'll post every day, and the next week I'll have nothing to say. Which apparently is a great way to kill my RSS subscribers.

So...if you ended up subscribing this week, I hope you'll stick around even when I'm posting less frequently. To entice you, here are some of the posts I made last year that I consider my favorites:

"We're going to talk about design when it's just you and your thoughts. We're going to talk about how constraints make you creative and then we're going to answer some questions and then we're drinking until someone has to get on a plane."

I don't have to get on a plane until the day after the panel, so I'm guessing it'll be a good time :)

I usually shy away from doing panels (I'm one of those geeky loner types), but I'm actually looking forward to this one - hope to see some of you there!

Monday, February 12, 2007

My family moved to Tennessee when I entered my teen years, and it was there that I met my first true love. She was a southern girl whose father was a fire-and-brimstone minister. I was 16 at the time, and to prove my devotion to her I agreed to attend one of her father's church services.

I was completely unprepared for what I saw. The service started simply enough, but once the sermon was underway, the reverend began speaking in tongues. You couldn't actually understand what he was saying, but a lady in the congregation was kind enough to translate his babbling into English. And to make this scene even more surreal, I should add that she had inexplicably shaved off her eyebrows and painted in ones that looked like Spock's. I kid you not.

A few months later I attended another of his services, and it turned out that the church pianist was sick. I kinda-sorta knew how to play, so my girlfriend volunteered me as a replacement.

After my eyeballs returned to their normal size, I tried to explain that I only knew a couple of rock songs - but they were desperate for a piano player, and I was a desperate young teen, so I agreed to do it. But to repay my girlfriend for volunteering me, I said that I'd do it only if she would sing.

A short while later I found myself seated at a piano in front of a hushed church audience that was expecting something inspiring.

To my girlfriend's credit, she found a way to sing it like a hymn. And to my credit, I skipped my piano version of the guitar solo (it would've rocked, btw).

I sheepishly left the service, feeling a mixture of elation and guilt for having pulled it off. But I felt better when the reverend came up and shook my hand, congratulating me for the "inspirational music."

PS: It's a good thing they didn't ask me to play again, because the only other song I knew was Iron Man, and that never sounded quite right on piano.

Friday, February 09, 2007

My friend Rex Hammock wants to know what Yahoo! Pipes is all about, so I whipped up a simple example "pipe" to show how it works.

A pipe takes input from different sources, mixes them together based on criteria you specify, then outputs the results as a single RSS feed. In this example, I created a pipe named "YouTunes" which links to YouTube videos of the top 10 songs on iTunes. Designing it was simple:

Next I added a for each: replace operator module, which takes an input feed and replaces it with output from another feed. In this example, I used the iTunes feed as the input and a Yahoo! search feed as the output.

I instructed the Yahoo! feed to search for the song name from the iTunes feed (itms:song), then restricted the search to http://www.youtube.com/

The final step was attaching the "for each" module to the pipe output.

It's not perfect - it needs additional filtering to weed out irrelevant videos - but I wanted to keep it simple for this example. If you'd like to check out the actual "YouTunes" pipe, you can find it here (or just subscribe to its RSS feed).

Thursday, February 08, 2007

Given that Yahoo! Pipes has been clogged much of the day, chances are you haven't been able to see it yet. So I'll take a few minutes to expand upon my brief previous post.

What does Pipes do? Pipes enables the creation of custom RSS feeds tailored to specific interests. Here's a very simple example: you could create a "pipe" which asks for a zip code, then generates a single feed containing information taken from a collection of weather feeds, news feeds, events feeds and sports feeds pertaining to that zip code. Or you could create a pipe which mixes news about a big event with Flickr photos of the same event. Or how about one that combines comments from the same person across multiple blogs?

However, while this feed filtering capability is exciting, the fact that Yahoo! is attempting a true web-based IDE is what makes Pipes stand out to me. Pipes offers a web-based development platform along with a web-based, drag-and-drop development tool which enables easily browsing, viewing and cloning code written by other developers working on the same platform.

In other words, this is Yahoo! making a platform play, not an aggregation play. Yahoo! is upping the ante in their competition with other web platform players (notably Google, Microsoft and Amazon).

I'm extremely impressed by how much Pipes tries to accomplish, but it does have sort of a "proof of concept" feel to it. Regardless of whether Pipes succeeds, though, it will be interesting to see whether Yahoo! creates other IDEs which build upon the lessons learned from this one.

BTW, if you'd like more information about Pipes, these links should help: