More than a year ago in TidBITS-373, I wrote an April Fools article called "The TidBITS Channel" about our forthcoming TidBITS Channel, which would take advantage of so-called "shove" technology. It was all in fun, but little did we know that nine months later we’d have a real TidBITS Channel.
Since the release of Microsoft Internet Explorer 4.0 in January of 1998, we’ve been updating a CDF (Channel Definition Format) file that’s the guts of what Microsoft calls an "active channel." Although CDF has been submitted to the World Wide Web Consortium (W3C) as a standard and is available there as a note, it’s supported only by Internet Explorer 4.0.
Although this technology was lumped in with "push" when it debuted, there’s no push involved. Instead, like Intermind’s overly ambitious Communicator product (see "Intermind Communicator – Let’s Communicate" in TidBITS-349), channels in Internet Explorer are actually an instance of scheduled pull. Let me explain how it works.
Subscribing & Customizing — As a user, subscribing to a channel is simple. All you do is feed Internet Explorer a URL to a CDF file. An easy way to do that is to click a link on the channel’s preview page. To see our channel preview page, visit the URL below; once there, you may subscribe to our channel by clicking the Add Active Channel button.
Once you click Add Active Channel, Internet Explorer downloads the CDF file, realizes you aren’t currently subscribed, and asks if you’d like to add the channel. Click the Add button, or click the Customize button to change our default settings.
After adding the channel, click or hover over the Channels tab on the left side of Internet Explorer’s window (make sure Explorer Bar is checked in the View menu) to display your Channel bar. The channel listing is similar to the list of your favorites or history, although channels generally have graphics instead of plain names.
You can customize the channel by Control-clicking it and choosing Get Info from the contextual menu that appears. Although there are several tabbed options – including Info, Subscribe, Account, Schedule, Notify, and Offline – only Schedule is interesting, since it enables you to change the default schedule Internet Explorer uses to check for new content. Peek at the other options, but I doubt you’ll want to change them.
You can unsubscribe from a channel by dragging it to the Trash, using the Delete command in the contextual menu, or by clicking the Unsubscribe button in the Subscribe tab of the Get Info dialog.
Reading the Channel — So what about reading the channel? Open the Channel bar, then click the TidBITS Channel graphic. Although you’d never guess, since Internet Explorer doesn’t provide discovery triangles like those the Finder uses for folders in list views, the main TidBITS Channel graphic is essentially a folder; for the purposes of this article, call it a "channel folder." When you click the channel folder, it displays three subordinate channel folders, although again, you can’t tell that they’re folders until you click them and reveal channel items. Clicking channel items causes associated Web pages to load in the main browser window. However, a channel folder can also have an associated Web page, so it both loads that page and reveals more channel items with a single click. Click to the left of a subordinate channel folder name to expand it without loading its associated Web page. In short, both channel items and channel folders can link to Web pages.
We’ve divided our channel into three sections, TidBITS Updates, Current Issue, and Web Site. The TidBITS Updates folder contains links to the current contents of TidBITS Updates, the Current Issue folder holds links to the articles in the current issue of TidBITS, and the Web Site folder has links to selected parts of our Web site.
To view any item, click it and the appropriate Web page appears in the browser window. You can tell what’s new by looking for yellow starbursts next to channel items. How does the channel know what’s new? Remember the schedule I mentioned? Internet Explorer checks the CDF file stored on our Web server according to that schedule (once per day by default). Whenever it finds changes in the content, it updates the channel and marks the change.
I said earlier that these channel items link to the channel content. That would imply you must be connected to the Internet to read a channel, but that’s not entirely necessary. When we created our CDF file, we took advantage of some options that force Internet Explorer to pre-cache certain parts of the channel, including TidBITS Updates and the current issue. Those options enable people to read the channel without being connected to the Internet – at least that’s the theory. In our testing, we ran across anomalous behaviors; you’ll have the best results if you explicitly choose Offline Browsing from Internet Explorer’s File menu.
Creating a Channel — I’d like to say that creating a CDF file is as easy as whipping up a Web page, but it’s not. Microsoft designed CDF so it couldn’t be abused as HTML has been, and Internet Explorer’s CDF parser is finicky. Drop a single bracket or quote, and whole chunks of your channel may disappear or move. I learned that the hard way and now only work with CDF files with Nisus Writer’s parenthesis matching feature on, so I know if I forget a closing bracket or quote. Some tools are available for creating CDF files, but they’re currently only for Windows.
There’s more information available now than when I first developed our channel, but the following page should get you started. Make sure to check out the CDF 101 and CDF 201 tutorials, and the CDF reference.
A few tips that may help: you can peek at other CDF files by finding the URL to the CDF file (it ends in .cdf), copying it, choosing Download File from Internet Explorer’s File menu, then pasting the URL into the Download File dialog box and clicking Download. Viewing what others have done should prove helpful, just as with HTML. Although you can’t drop a CDF file on Internet Explorer’s window to open it for local testing, you can load it via Open File from the File menu.
Designing a Channel — Mac-oriented channels have essentially two functions. The first is delivery of updated content directly to users’ browsers so they don’t have to download it later. A second function is the capability to present the most important pages on a Web site for quick navigation. Under Windows, channels can also provide screensavers and active desktop items, but thankfully those features aren’t supported on the Mac side.
If you use a channel purely as an aid to Web site navigation, you won’t have to do much updating, but I don’t see much utility to a channel that doesn’t offer direct access to updating content. However, since creating a static channel is much easier, that’s what many publishers have done.
Updating Channels — Creating a channel is only the beginning. Since a channel provides frequently updated content, publishers must commit to regular updates. Needless to say, regular updates scream for automation, and although we’re normally the first to put automation in place, we’ve been somewhat stymied by the task of automating our channel. The problem is one of abstraction – we don’t like to create special cases. If we’re going to revise our automation to handle CDF, we want to make it sufficiently generic that it can spit out other formats using the same data (things like navigation bar elements, TidBITS Updates, the contents of each issue, and so on).
In the meantime, with a little help from Contributing Editor Matt Neuburg, I’ve written a small Nisus Writer macro that takes a list item copied from the HTML source of our home page and converts it to a correct channel entry, complete with a last modified date. So, after we post a TidBITS Update, which happens four or five times each week, we view the source of the home page, copy the new list item, add it to the CDF file, and upload the CDF file back to the Web server.
500 Channels and Nothing On — I’m of two minds about CDF channels. The technology seems fine, although it’s documented poorly and online guides lack significant design suggestions, which contributes to my real problem, which is that most channels I’ve seen are lousy. Few designers understood the theory behind channels and ended up implementing their channels poorly. There’s little reason users would want to subscribe to most of the channels out there. I think ours is fairly good, because it combines our content with frequent updates and a conscious design.
Microsoft hasn’t helped much. Channel support within Internet Explorer is confusing and poorly differentiated from favorites, to which you can also subscribe. (With favorites, you choose what to see and how often to check for updates, whereas the publisher can make those decisions with channels.) Worse, when Microsoft released Internet Explorer 4.0 it created a channel guide that listed known channels, but with Internet Explorer 4.01 Microsoft eliminated that channel guide. Now the only way to find a channel is to happen across one at a Web site, which is no way to promote a technology.
We were interested in channels because we felt being listed in the channel guide would be a good way to introduce TidBITS to potential readers. There’s no question that our channel increased Web traffic – since everyone who has subscribed accounts for a number of hits on our site – but as a tool for reaching new subscribers it’s been relatively useless.
In the end, it seems that channels and CDF were primarily Microsoft’s entry in the then-hot "push" field. Although the technology itself is relatively well thought-out, little attention was paid to the reasons someone might want to read updating content via a channel rather than via email or a normal Web page. The current implementation is a 1.0 effort at best, and if Microsoft wanted the concept to succeed, significant work would be required to arrive at the 3.0 level that’s generally usable. Perhaps we’re simply lacking the necessary patience, and future versions of Internet Explorer will radically improve channel creation and support. In the meantime, we’ll continue maintaining and updating our channel as long as a significant number of people are reading it, so try it out and see if it’s useful to you.