NetNewsWire 2.0b10 Change Notes

This page lists changes to NetNewsWire since 2.0b6.

(You can download the current beta from the NetNewsWire beta page.)

This release fixes a number of bugs, including bugs in the Atom parser, persistence, Rendezvous sharing, and a crashing bug.

The main new feature of this beta is support for RSS enclosures—aka “podcasting.” There are several smaller new features: Yahoo News search feeds, a downloads window, support for Atom linkblogs, smart list enhancements, better feedback at startup, and more.

2.0b10: 31 December 2004

Persistence bug fixes

A bug where old news items could be lost was fixed. NetNewsWire was using the date as specified by the feed to determine if an item is old. But sometimes feeds might have incorrect—and old—dates. So NetNewsWire now also looks at the date it first downloaded an item, and uses the most recent of the two, before deciding if an item should be deleted.

Changing the number-of-days setting on the General prefs pane would not take unless you hit return, which sometimes confused people into thinking they’d set persistence settings but really hadn’t. Fixed. (Hitting return is no longer required.)

Crashing bug fix

If a feed URL is "http://"—no domain or path—then NetNewsWire would crash when trying to read it. No longer.

This crash, by the way, affected the importing of some OPML subscriptions lists, if one or more feed URLs was just "http://"

Browser tabs bug fix

Fixed a bug where if you had some tabs open in NetNewsWire, then launched NetNewsWire somewhere without a network connection, then the next time you launched NetNewsWire the tabs would be gone. Now they’ll be retained.

Atom

Atom parsing

The Atom parser was rewritten. Some highlights:

1. Fixed link support—example: links in items in http://annevankesteren.nl/feeds/href now work.

2. Multiple subjects in http://www.43folders.com/atom.xml now appear.

3. Passes internationalization tests in http://www.intertwingly.net/blog/2004/06/02/Aggregator-i18n-tests.

4. Now supports UTF-16 encoding—and passes internationalization tests in http://intertwingly.net/stories/2004/06/03/utf16.atom.

5. Atom authors are now supported (in the creator field).

6. Supports for comments URL via Well-Formed-Web module http://wellformedweb.org/CommentAPI/.

7. Parses feeds where Atom itself is in a namespace, as in http://www.pocketsoap.com/weblog/feed.atom.

8. Decodes base64-encoded items as in http://diveintomark.org/tests/client/escaping/blink.xml.

9. Supports links and xml:base—passes tests in http://diveintomark.org/tests/client/base/links-in-content.xml and http://diveintomark.org/tests/client/base/links.xml.

10. Supports titles in plain text vs. titles in HTML—passes tests in http://diveintomark.org/tests/client/escaping/blink.xml and http://www.intertwingly.net/stories/2004/04/04/title.atom.

11. Supports for "via" and "related" links—passes tests in http://diveintomark.org/public/2004/05/multilink-via.xml, http://diveintomark.org/public/2004/05/multilink-type.xml>, and http://diveintomark.org/public/2004/05/multilink-linkblog.xml. Also see a couple real-world feeds that include related links: http://annevankesteren.nl/feeds/href and http://thadk.net/atom.php.

Note: these changes don’t affect already-parsed items—they affect all new items from here on out.

Also note: Atom is a moving target. It’s not a finished spec. That means that new versions of Atom will appear and more work will done on our Atom parser in the future.

Other Atom support

(Yes, this is separate from Atom parsing.)

Linkblogs—Atom feeds with (often) multiple links per entry—are now supported. Any additional links ("via" and "related") are listed below the description.

More author information (email and URL) is displayed in HTML datelines when present. They’re links—you can click on them.

Untitled news items now get "Untitled" as their title instead of just a blank line.

RSS parser

It no longer tries to deal with non-well-formed feeds. In real life, a non-well-formed feed is almost always a feed with an unencoded ampersand. NetNewsWire used to work around this problem—but the work-around had a bad side effect: it made the HTML visible in the description pane. Which led to lots of bugs reports and erroneous impressions.

Since the cure was worse than the disease, we removed the cure.

(Note: the Atom parser never did try to deal with unencoded ampersands. So now the two parsers are the same in this respect.)

Downloads and enclosures

Downloads window

When you click on a link that should do a file download—a .gz archive, for example—NetNewsWire used to send it to your default browser to do the download. No longer—now there’s a downloads manager window, a la Safari, Firefox, etc.

This was a very commonly requested feature—but it was also vitally important for podcasting. (Because podcasting, when you think about it, is pretty much just a downloading-files feature.) If it weren’t for podcasting, we would have put the downloads window off until some post-2.0 release.

For the curious: the download code uses WebDownload, a WebKit subclass of NSURLDownload, which is cool because it downloads to disk, and should thus be memory efficient. (Much better than, say, downloading the whole thing to memory and then writing it out to disk all at once.) (WebDownload should also handle username/password authentication automatically, though we haven’t tested this yet. You should be able to download stuff for which you need to authenticate.)

Downloads are not remembered between runs of the app. They’re cleared when you quit.

Podcasting and RSS enclosures

When you select a news item that has an enclosure that you have not downloaded, a special view tells you that there’s an enclosure you haven’t downloaded. It tells you the filename, URL, length, and type. Click a button to download the enclosure. If it’s an audio enclosure (aka podcast), click Download to iTunes to download and import it into iTunes.

Known bug: this view doesn’t show up in the Combined View, only in traditional and widescreen views. No need to report this as a bug.

But—of course—you may want to have NetNewsWire automatically download enclosures. Open the Preferences window, click the Downloading icon, then click the Enclosures tab. You have several settings:

1. Audio enclosures can be automatically downloaded. You can have them sent to iTunes automatically or not.

2. You can set the iTunes playlist or use the name of the feed as the playlist name.

3. You can set the genre for imported podcasts.

4. You can tell NetNewsWire to delete files after sending to iTunes.

5. Other enclosures can be automatically downloaded. (It’s a separate setting, since you may want just audio enclosures, for instance.)

6. On the Downloads folder tab you can specify the downloads folder.

If NetNewsWire automatically downloads enclosures, it downloads them after a refresh session.

Important note: it won’t automatically download enclosures for news items that you’ve previously downloaded, since there might be dozens or hundreds. You can easily find them and download them by clicking the appropriate button—and you can create a smart list that lists items with enclosures...

Smart lists

New smart feeds fields: enclosure URL, enclosure type, group name, and "Title or Description or Summary."

To create a smart feed that shows all your enclosures:

1. File > New Smart List

2. With one criteria: Enclosure URL contains a /. (Any URL needs to contain a /, so this will match every enclosure.)

Username/password now in Info window

You can now set the username and password for a feed in the Info window. There’s a new "Username & Password" section. Expand it to set your username and password. (Passwords are stored in the keychain.)

NetNewsWire will not prompt you for you username and password (when reading feeds) the way browsers do. (Even though that’s what we originally planned.)

There are a couple reasons for this:

1. This way you can set them any time you want, including right when you’re subscribing to a feed, which is when you’re thinking about the feed.

2. Aggregators are not like browsers when they’re reading feeds. Aggregators read in batches and browsers don’t. (Well, they can, when tabbed browsing is enabled—but still, it’s different.) Aggregators often refresh unattended, while browsers are user-driven.

So what happens if ten or 50 feeds all need a username/password at once? The user interface gets tricky. What if you’re not even at the computer?

It’s better to not force a browser interaction model on something that’s fundamentally not browser-like. (It’s not like email, either, because you probably only have one or a few accounts—while in an aggregator you may have dozens of feeds that need usernames and passwords.)

Feedback at startup

While feed are being read from disk, you now get feedback—a special view with a progress indicator and a message that says "Loading x of y: Feedname..."

This view is based loosely on iPhoto’s "loading photos" startup view, but it gives a little more info.

Also: NetNewsWire should no longer download feed images and favicons while reading feeds from disk, which prevents the confusion of a download-session progress indicator appearing below the subscriptions pane.

And: Web page tabs are loaded after the feeds have been loaded from disk.

Startup performance optimization

Did some low-level optimizations that affect (mostly) performance at startup. For instance, with a test of loading 1066 subscriptions, load time went from 14 seconds to 8 seconds. Nearly 50%! (We love Shark.)

Yahoo news search feeds

Yahoo news search joins Blogdigger, Daypop, and Feedster as a search engine feed provider.

Choose File > New Special Subscription > Search EngineÉ to create a new search engine subscriptions. Choose Yahoo from the search engine popup menu in the sheet that appears.

Preferences

Default prefs changes

The default for showing favicons in browser tabs is now No instead of Yes. (To present a cleaner first-time look).

Downloading preferences

Now broken into tabs, since it was getting so long. Three tabs: Feeds (refresh prefs), Enclosures (podcast prefs), and Downloads folder.

Browsing Preferences

There is no longer a choice of opening links in NetNewsWire without tabs. You choose between external browser and NetNewsWire.

(The pref still exists, for those who’ve set it up that way and like it, but it's no longer a supported option.)

The checkbox for marking all as read when opening a subscription’s home page has been removed. The pref still exists, but it’s now a hidden pref. (The key is markAllAsReadWhenOpeningHomePage if you want to set it via the Terminal.)

Removed the preference on the Browsing pane for preferring links back to the site (permalinks) or external links. (It turns out that pretty much everyone wants permalinks. Also: the pref still exists as a hidden pref.)

The Browsing preferences pane is thus much less complex. It needs to be non-complex, since this is a major change in 2.0, and it’s important that it be easy to understand, easy to find, and not present too many choices.

HTML preferences

Now using a tab view instead of a popup menu to switch between news-items and web-pages prefs. Reason: because people often didn’t notice that there are two sets of prefs here. The popup menu wasn’t as obvious as tabs.

Fixed bug where selecting HTML prefs didn’t always select HTML icon in the toolbar.

Fonts and Colors preferences

Brighter default text colors for subscriptions with unread headlines and for unread headlines. To get the default colors, go to the Fonts pane in the Preferences window, and click Reset Colors to Defaults at the bottom of the window.

Moved it from second position to after downloading prefs.

User interface

Splitview

The splitview used to act like it went from the bottom of the toolbar to the bottom of the window. Now it really does—which gives a cleaner look. (And it meant being able to delete some custom code.)

Cool resizing change—if you resize the window, the width of the subscriptions list doesn’t change, since you probably don’t want it to. (There are exceptions for edge cases, of course.)

Subscriptions list

It’s more like an Apple source list—the highlighted item uses a gradient rather than a plain highlight. (See iTunes, the Finder, etc.)

The unread count—the number in parentheses, like (56)—now gets the same text color as the rest of the line, which makes for a cleaner look.

Subscriptions status bar

Instead of status text at the top and below the subscriptions pane, there’s a single status text field below the subscriptions pane. This makes the UI less busy, since now there’s one thing where there was two. Click the status text field to change what it displays.

Below the subscriptions pane are two new buttons: plus and gear. These buttons (or a variation) have become a standard on OS X.

Descriptions status bar

Below the description pane is a popup for the current style. It’s a good spot for it because it’s right next to the thing it affects—and it means, once again, making the toolbar simpler. (We thought having the popup Style menu in the toolbar didn’t look very good.)

You can hide the style popup menu—choose View > Hide Styles Menu.

The current URL in the status bar below the description pane has a white shadow—giving it kind of a subtle etched look. (The same technique was already in use in the browser tabs.)

Toolbar

The default toolbar was simplified. To get the full effect, choose View > Customize Toolbar and choose the default set.

The Search bar was moved flush right (in the default)—we discovered that it looked better and made the app feel more simple.

Browser

The spinning progress indicator was a bit jarring, and it didn’t really tell you how much information. It just spun.

We tried doing it like Safari, putting a thermometer-style indicator in the address field, but got tired of it after a couple days. So now it’s a just a plain-jane thermometer-style indicator in the status bar below the web page. It appears only when a page is loading.

Web page titles now appear in the NetNewsWire title bar rather than below web pages in the status bar.

HTML display fixes

Descriptions for feeds that don't have a valid home page URL were not being displayed. Now they are.

Fixed a likely cause for another bug that sometimes caused HTML descriptions not to appear. (The code that kept track of whether or not the selection was changing due to a change in the feed, rather than a change in the selected news items, could be left in a state where it thinks further selection changes are update changes. The description is not displayed for update changes.)

Included Kevin Ballard's revised HTML differences script, which fixes some bugs with HTML fragments.

If you have a news item selected, then select no item, the description wasn't clearing—now it is.

Window menu

The menu items that open other windows—Activity, Bandwidth Stats, etc.—are no longer toggle items. They used to change their name and behavior to show or hide the item. Now they just open. (This change was made because it seemed like pretty much every other app works this way.)

The Activity menu item now has a keyboard shortcut: cmd-opt-A. (Same as in Safari.)

The Downloads menu item has a keyboard shortcut: cmd-opt-L. (Same as in Safari.)

Subscriptions pane contextual menu

The Copy commands now appear in a submenu.

HTML display faster in some circumstances

We made a change which may lessen the frequency of the description pane becoming "stuck" and not displaying descriptions.

This same change may make external page browsing faster for people with fast connections (cable modems, T1 lines, etc.).

Style sheets

Updates to a few style sheets are included.

We started the deeply un-fun process of cutting down the list of style sheets installed by default. (Note: NetNewsWire never deletes style sheets already installed.)

Under-the-hood cleanups

We did a bunch of cleanups of the notification system under the hood in order to make it more rational and to use less temporary memory. (Notifications are messages that happen when, for instance, the current selected subscription changes, when a feed download completes, etc.)

It’s possible that bugs were introduced—so be on the lookout for anything strange (as in: I click on x and nothing happens, but it should do y like it used to).

Rendezvous (aka Sharing)

Change named of service from "_feed_subscriptions_sharing._tcp" to "_feed-sharing._tcp"—because the old name violated the spec. (It was too long and contained underscores where it shouldn’t.) (This change means that Rendezvous won’t work between this version and earlier betas.)

Fixed some bugs—the Rendezvous feature is now more reliable. (The browser wasn’t always starting when needed; it was shutting down prematurely; it wasn’t always finding nearby subscription lists.)

If the Rendezvous server fails to start, it now waits 61 seconds instead of 5 seconds to try again. This cuts down on CPU use and gives networking things a chance to time out.

Sites Drawer

More feeds were added.

Beta notes

A Beta Notes page appears the first time you run each beta version. This way you know you’re running a beta and you know what beta means. The beta notes page includes some warnings and also lists the change notes.

(It turns out that people didn’t always go to the beta page on our website.)

You can re-open the Beta Notes window by choosing Beta Notes from the Help menu.

© Copyright 2005-2008 NewsGator Technologies, Inc.


NetNewsWire: More news, less junk. Faster