NetNewsWire 2.0b37 Change Notes

4 April 2005

This page lists changes to NetNewsWire since 2.0b25.

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

Note

All features of the final 2.0 version are included in this beta, including syncing (via .Mac and FTP). Since syncing is the newest feature, it is likely to have more bugs than other features.

What remains to do before shipping 2.0 is fixing more bugs, adding polish, and updating the documentation and website.

Backups

You should make backups of your NetNewsWire data. (Even once 2.0 has shipped, making backups is a good idea. It’s always a good idea—for other data too, not just for NetNewsWire.)

The two things to back up are your preferences and data folder:

Highlights of this release

- Tag subscriptions, for easily subscribing to tag feeds from Del.icio.us, Flickr, and Technorati.
- Syncing, for people who use two or more copies of NetNewsWire.
- Performance boosts and crash fixes.
- Per-feed and per-group enclosures and podcasts settings.
- RSS parser fixes.
- Fewer “reruns.”
- And many more bug fixes and enhancements.

Changes since 2.0b25

Performance

Searching performance

Searching is faster in most cases—sometimes much faster. To make it more clear that a search is in progress, the headlines table empties at first and the table header says that it’s searching.

Doing a search on selected subscriptions is now faster than doing a search on all subscriptions. (The opposite was true in previous betas.)

NetNewsWire no longer creates an index file on disk. The file at ~/Library/Application Support/NetNewsWire/SearchIndex is no longer used and can be deleted. By no longer doing this indexing, NetNewsWire feed-downloading performance is increased, and memory use and disk use are reduced.

Feed downloading performance

A number of performance optimizations were done, particularly while refreshing feeds. (For instance, it was recounting the overall unread count more often than necessary. It was updating the dock badge sometimes whether or not the unread count changed. A bunch of little things like that that add up.)

Mark all as read performance

Marking all as read appears faster now because the database accesses have been moved to a separate thread, so it happens in the background.

Crashing bugs

Several crashing bugs were fixed, most notably a crash in the feed downloader and a crash that could happen when you have one or more smart lists inside a group.

New subscription type: Tag subscriptions

You can now easily get feeds for tags from Del.icio.us, Flickr, and Technorati. These are much like search engine subscriptions, only they’re for tags.

Choose File > New Special Subscription > Tag... to create one.

(Thanks especially to Niall Kennedy and Robert Daeley for recently pushing for this feature.)

Example uses: say you like pictures of cats—you can create a tag subscription with Flickr using the tag cat. Or perhaps you’re interested in Cocoa programming: you could create a tag subscription with Del.icio.us using the tag cocoa.

Search engine subscriptions and original sources

When an item from a search engine subscription is displayed, and the Source column is visible, the name of the search engine feed is displayed when the original source of the item is not known. (Some search engine feeds include original source names, some don’t.)

The original source name for an item in a search engine subscription is now remembered across runs of the app.

Password-protected feeds and proxy authentication

Fixed a bug where passwords retrieved from the keychain could have garbage characters added to them, resulting in authentication failures.

Fixed a memory leak where password data would sometimes be leaked after getting it from the keychain.

Description display

A bug introduced in a previous beta that seemed to affect mostly comics feeds was fixed. The symptom was that the comic wouldn’t display—now it will. Example: http://www.heterosapiens.com/~crschmidt/luann.xml

If a link inside a description goes to another place inside the description, the description scrolls. (Instead of opening a new tab.) In other words, links like "#foo" now work correctly.

Headlines display

News item titles have their entities double-decoded in the headlines table. This works around a bug in feeds like the New York Times Most Emailed Articles feed http://www.nytimes.com/services/xml/rss/nyt/pop_top.xml where you would see entities such as ' in the headlines table.

Entities are now double-decoded in the summary line in the headlines table (when you have summaries turned on).

Fixed a bug that prevented some cases of < and > from appearing in titles—text might get stripped out. (As in this feed: http://feeds.aps.org/rss/recent/prd.xml) NetNewsWire still strips some common HTML that appears in titles in RSS feeds (such as <i> and similar) but leaves intact other cases where < and > appear. (Note: HTML is not supposed to appear in titles in RSS feeds, but some feeds do it anyway. Sigh.)

Feed auto-discovery and rdf

Now finds feeds with a link like this: <link rel="alternate" type="application/rdf+xml" title="French Girl in London frenchgirl le blog de Boaglio RSS" href="http://frenchgirl.over-blog.com/index.rdf"/> Previously it didn’t find application/rdf+xml links.

RSS parser

Note: RSS parser changes apply to future items, but not to already-parsed items.

Some comics RSS feeds incorrectly include unescaped HTML in their description—which NetNewsWire now handles. Example: http://rss.slightlyinsane.com/?comic=dilbert (Actually, some other feeds do this too, but we’ve mostly seen it with comics feeds lately.)

NetNewsWire will now read Village Voice feeds even though they begin with <?php xml version="1.0"?>. Example feeds: http://www.villagevoice.com/most_recent_rss.php and http://www.villagevoice.com/most_popular_rss.php

The RSS parser now supports multiple categories. They appear as comma-delimited lists in the headlines and description panes.

Now parses the dates in http://meyerweb.com/eric/redesignwatch/rss20.xml which look like 09 Feb 2005 12:00:00 +0000.

Fixed a bug with hex entities in the RSS parser. Now “Boy on a Stick and Slither” works: http://interglacial.com/rss/boy_on_a_stick_and_slither.rss

Worked around a bug in http://www.medicinenet.com/rss/dailyhealth.xml so that links work.

Atom parser

Fixed a bug where sometimes updated items in Atom feeds wouldn’t display the new version.

NetNewsWire no longer refuses to parse Atom feeds with Shift_JIS encoding. (It used to be that Shift-JIS reliably made the XML parser crash, but it doesn’t appear to be the case any more.) For instance, the following feed now works: http://pixelscribbles.com/journal/rss/atom.xml

News items and reruns

Don’t mark as unread unless description changes

Changed a processing rule to make “reruns”—seemingly duplicate items that appear in the same feed—much less likely. If a news item has changed—but the description and/or summary is/are still the same—it won’t be marked as unread.

Some feeds change just the link or whatever, so it makes it look like an old item has gotten marked as unread. (Even though, in reality, the item has in fact been updated. They aren’t really duplicate items, it just seems that way.)

This change only works for Atom feeds and RSS feeds that use guids. Remember to bug your favorite webmasters to use guids or use Atom.

Don’t mark as unread unless description changes length

Another change makes reruns even less likely: if the description changes, but it’s within a dozen characters of the length of the existing description, it’s not marked as read. (The descriptions are compared after stripping HTML and collapsing whitespace).

The idea is that you won’t be bothered by insignificant changes. Barring sophisticated semantic analysis, checking the length is pretty reasonable.

Here’s a scenario: say you’re subscribed to a feed for some forum somewhere. In each news item is the number of replies to that item. The news item description thus changes every time there’s a new reply to that item. It’s annoying to have that item marked as unread. This way it’s not marked as unread.

Here’s the thing: if NetNewsWire considers any change to be a significant update, then people perceive it as a bug. It’s probably the single most common bug report, even though it’s very rarely a bug. (It’s almost always a real change of some kind in the feed.)

You can change the number from a dozen to something else via the standard command-line defaults write command. The key is significantChangeInLength. (Like other hidden prefs, make the change when NetNewsWire is not running.)

Note: again, none of the above applies to RSS feeds without guids. It only works for Atom feeds and RSS feeds with guids. (Ranchero to world: please use guids! Or Atom!)

Misc. news item fixes

Links with %26

Fixed the bug that messed up URLs with %26 in them. This made it so some links (most commonly at Fark) didn’t work. This bug will take some time to work it’s way through your system. Already-parsed news items won’t get the fix, but new items will.

Groups and dupes

Fixed a bug that causes duplicate items in groups (this may have only affected groups with sub-groups).

Subscriptions outline

Drag and drop

There was a drag-and-drop bug with links: you couldn’t drop a link onto a group and have the feed appear inside the group. It would appear at the same level as the group. Fixed.

Sort by last update

Added a new sort order for the subscriptions list: sort by last update date. It uses the most recent date for the most recent item to determine the date to sort on. View > Subscriptions > Sort By Last Update.

New-items, flagged-items subscriptions

The contextual menus no longer have an errant separator item at the top.

If you unsubscribe from these via the Unsubscribe command or Delete key, they’re handled specially now (as they’re supposed to be) rather than just unsubscribed-from like other feeds.

If you have only one or both of these two feeds selected, the Unsubscribe command in the File menu is disabled. (Even though it now would work fine. It’s just a way of indicating that these two are special and it’s best to use the View menu commands.)

File downloads warning on quit

If you try to quit when there are file downloads in progress or pending, then NetNewsWire will show a window asking you if you really want to quit now. The default is to continue downloading rather than to quit.

Sites Drawer update

The Sites Drawer was updated with more new feeds and a new Photography category. See the New in 2.0 category to see everything that has been added since the release of 1.0.8.

Info window

Headers are now bold.

Added section for editing Tag subscriptions. Added per-feed settings for enclosures and podcasts.

Preferences window glitch

If you click on the toolbar icon for the pane that’s currently showing, it used to be that the contents of the window would flash. Fixed.

Enclosures and podcasts

Per-feed/per-group settings

In the Info window, you can now tell NetNewsWire on a per-feed/per-group basis whether or not to automatically download podcasts and other enclosures.

There are a bunch of other enclosure-related prefs we could have over-ridden—but the auto-downloading prefs are the truly important ones. Other prefs we’ll leave to a post-2.0 release.

Enclosures prefs reorganized

The enclosure prefs were reorganized a bit. The main thing is that the iTunes settings are no longer subordinate to downloading audio enclosures automatically—since these settings also apply when you manually click the download-to-iTunes button. There is a new iTunes settings tab.

You can now specify that NetNewsWire shouldn’t set a playlist at all in the prefs.

New subscriptions don’t automatically download enclosures

Enclosures are no longer downloaded automatically for new subscriptions.

Reason: well, this could be highly annoying as 20 enclosures download. It could be even more annoying when you import an OPML file full of subscriptions with enclosures and 1000 downloads are initiated.

Header view changes

A new Copy URL button lets you copy the URL of the enclosure. (Why not just make the URL selectable? Because the URL may not entirely fit in the space, so this wouldn’t always work. But a Copy URL button will always work.)

The background color of the header changes depending on the status: not downloaded, download-in-progress, download complete. (It’s just a small visual clue so you don’t have to read the text.)

Tightened up the layout a little. There’s a major challenge here—it has to work in widescreen view as well as traditional view, and it has to work with a wide variety of window sizes.

You can now re-download enclosures that were previously downloaded. The Download to iTunes and Download buttons are enabled for previously downloaded items. The only time they’re disabled is while a download is in progress.

You can view the entire URL by putting your mouse over the "Enclosure: foo.mp3..." text. (The URL appears in a tool tip.)

(Will there be more podcasting features? Yes, absolutely, you bet—but after 2.0. It’s important to ship.)

Enclosures misc. changes

Enclosures where the URL contains &amp; (the ampersand entity) were not getting downloaded. Fixed.

Changed number of concurrent downloads from 6 to 2. Reason is because the URL loading stuff seems to interfere sometimes with loading HTML descriptions. (There is some kind of throttling or queuing that really bugs us here. The symptom is that while URL loading is happening, sometimes the HTML description pane won’t update.)

Subscribing

Feed: URLs and subscribing

If you subscribe to a feed: URL—manually or via drag-and-drop—it should work fine now. (If there’s a feed: URL on the clipboard, it even translates it to an http URL before pasting it into the subscribe sheet.)

Redirects bug fix

In some cases, subscribing to a feed that did a redirect would cause the subscribe to fail. Fixed. For example, you can subscribe to http://jim.roepcke.com/hbwt_headlines.rss which redirects to http://jim.roepcke.com/index/rss

Already-subscribed sheet

When you try to add a new subscription, but you’re already subscribed, an error sheet is supposed to appear to let you know. But sometimes it wouldn’t appear because the subscribe sheet was still animating itself away. So now the error sheet waits a little to give the subscribe sheet a chance to get away, thereby ensuring that it will display.

Smart Lists

In the smart list editor, changed "Subscription URL" to "Subscription Feed URL" to make it more explicit and match what’s in the Info window.

New keyboard shortcut: cmd-option-n means New Smart List (as in iTunes).

Syncing

The idea behind syncing is to keep your subscriptions list, news item status, and browser tabs synchronized between two or more copies of NetNewsWire. Syncing works via your .Mac account or via FTP.

How to set it up

Open the Preferences and click the Syncing button. You can choose between .Mac syncing and FTP syncing. If you choose FTP, click the Settings button to enter your FTP server, folder path, username, and password. (The password is stored in the keychain.)

The computer name is used to identify each copy of NetNewsWire you have. This needs to be unique for each copy. NetNewsWire comes up with a default name based on the name you give your computer in your system settings. (Note if you use syncing: do not copy your NetNewsWire prefs file between machines, as this will result in multiple machines with the same name. The name is stored in your NetNewsWire prefs.)

You can choose what you want to synchronize—any combination of subscriptions, news items status, and browser tabs.

You can also choose to have your subscriptions list be a copy of subscription lists on the server or have NetNewsWire do a merge.

You can tell NetNewsWire to sync at startup and when quitting. At both of those times, a sheet appears asking you if you want to synchronize. This way (if you’re on the train or whatever) you can skip it. (The don’t-sync button responds to the Esc key.) You can also turn off the prompt and have NetNewsWire do it without asking.

How to sync

In the File menu is a Synchronize Now... command. Choose that to sync any time you want to.

While syncing, a modal windows appears—it displays messages and shows the progress of the sync session. It disappears when the sync session is complete. It has a Cancel button, so you can cancel the session. (It’s usually a good idea to let it run to completion, though.)

Where files are stored

Files are stored on your .Mac iDisk or FTP server. Note that the files are prefixed by the name of a computer—this way different machines won’t over-write each other’s data.

If you’re using .Mac, the files are stored in the Documents folder. This is because NetNewsWire can’t write to the Library/Application Support/ folder. We wish it could, but it can’t.

NetNewsWire stores some files in your local ~/Library/Application Support/NetNewsWire/ folder. The SyncIDs.db file is important: do not delete it. It’s how NetNewsWire remembers what has been synced already. The SyncExport and SyncImport folders are for temporary storage: you don’t need to save them. (You may not notice them, as they’re deleted when a sync session completes.)

How news items status is synchronized

If an item is marked as read, flagged, or followed, then that information will be synchronized. If not marked in one of those ways, then the status is not transferred.

The actual news items themselves are not transferred, just the status. (Since when you refresh you’ll get the actual news items anyway. It would be hugely wasteful to transfer actual news items via syncing.)

Backups and reverting

If you do a sync and you want to go back to the subscriptions list you had before the sync, choose File > Revert Subscriptions....

In addition, NetNewsWire stores backups of your subscriptions list at ~/Library/Application Support/NetNewsWire/Backups/.

However, you still should make regular backups of your NetNewsWire preferences and data.

Browser

Close all tabs warning sheet

When you choose Window > Close All Tabs, a sheet appears warning you about it. The default button is to not close all tabs. There’s a checkbox that lets you turn off the warning in the future. (If you ever want to turn it back on, defaults write com.ranchero.NetNewsWire displayCloseTabsWarningSheet YES)

Tabs remembered at startup—but pages not loaded

NetNewsWire still remembers your tabs between runs—but it doesn’t load the pages automatically at startup anymore. It loads a page when you select that tab.

In other words—your tabs are still there. The difference will just be that a page won’t load until you select that tab.

(Actually—the first time you launch this beta, it *will* load the pages, because it doesn’t have the titles of your pages on disk. But on subsequent launches it won’t load the pages.)

There are several reasons for this:

1. It makes startup much faster for people who have lots of tabs.

2. It uses less bandwidth.

3. It means that NetNewsWire won’t crash at startup due to WebKit bugs. (We get a few reports a week of crash-at-startup due to WebKit crashes.)

4. It means you won’t get those repeated downloads at startup, which a few people have reported.

5. It makes overall performance and memory use better for people who keep lots of tabs.

The file for storing tabs between runs has changed from Tabs.plist to BrowserTabs.plist. (So that anyone going back to a previous beta doesn’t crash. The format of the file changed, and previous betas won’t understand the changed format.)

Browser load unloaded tabs command

In the Window menu is a Load Unloaded Tabs command. It displays a sheet that warns you that it may take some time. It also gives you a checkbox to turn off the warning in the future.

This way you can load all the unloaded tabs before going on the train, for instance.

There’s also an AppleScript command: tell application "NetNewsWire" to load unloaded tabs

The AppleScript command does not display a warning sheet.

Browser load-at-startup hidden pref

A new hidden preference allows you to specify that tabs pages should always be loaded at startup. Here’s how to set it:

1. Quit NetNewsWire if it’s running.

2. Open Terminal. Type the following and hit return:

defaults write com.ranchero.NetNewsWire alwaysLoadTabsAtStartup YES

3. Launch NetNewsWire. Your tabs pages will be automatically loaded.

Note! This is risky. There are crashing bugs in WebKit—the Safari HTML renderer that NetNewsWire uses—and NetNewsWire could crash on startup. If that happens, turn automatically loading tabs off.

Note 2! Loading tabs pages at startup is also a performance penalty. It takes time to load all your tabs pages. (Imagine asking Safari to load all those pages—it takes the same amount of time for NetNewsWire to load them.)

To turn off automatically loading tabs pages at startup, repeat the steps above, but type NO instead of YES in the Terminal.

Note 3! If NetNewsWire crashes at startup due to a WebKit crash, and you can’t get it back up and running because you didn’t follow the instructions here, and then you send us email, we’ll go totally foo.

Browser Tabs appearance

The idea was to make the tabs simpler, more attractive, and more like standard OS X tabs—even though there isn’t actually such a thing. (Note how every browser, FTP client, etc. does it differently. Yes, there is a tab control, but it’s really for a different kind of tabs, not for things like tabbed browsing.)

It uses that two-tone two-gradient thing—it gives the tabs a kind of 3D "glass" look. Not having the rounded edges makes the tabs look sharper and less busy.

At the same time I optimized the drawing code so that they draw more quickly. (The tab widgets, that is. We can’t optimize the drawing of web pages: that’s out of our hands.)

Also: showing favicons in tabs is now on by default.

Browser Progress bar

The progress now appears in the URL field, instead of in a progress indicator at the bottom right of the window, a la Safari etc. (You have no idea how many people have asked for this.)

Browser Feed detection

If you’re viewing a page in the browser, and it has a feed (found in the proper meta tag)—and you’re not already subscribed—then a Feed button appears in the lower-right corner of the newsreader window. Click on it to subscribe to the feed.

(It’s in the location that the progress indicator used to be in, since that space has been freed up.)

Open in default browser commands

Wherever there’s a command to open in the default browser, the name of the browser is specified, as in Open in Default Browser (Safari). Reason: it could be confusing what "default" means in this case. (System-default or NetNewsWire-default?) So having the browser name appear makes it explicit.

Terminology: sometimes the command said "Open in External Browser" while other times it said "Default." Now it always says "Default."

Browser Misc.

If a web view is text/plain or otherwise can’t provide document source, then the Copy HTML Source menu command will not appear in the contextual menu.

Main menu

Collapse Read Items is now disabled when the Combined View is not active.

All the menu commands in the View menu are now disabled when the main window is not open.

Dock icon opens main window

If you click on the dock icon, the main window will open even if other windows are already open. (Previously it would open only if no other windows were open.)

Jaguar

Fixed a bug that prevented file-open and file-choose sheets from appearing in Jaguar.

AppleScript support

Some people have reported warnings in the Console related to the scripting dictionary. Fixed. (Was specifying “String” as a type in some places when it should have been “NSString.”)

Resources

The new Resources page is linked-to in the Help menu: http://ranchero.com/netnewswire/resources/

It has pages and feeds for tips, scripts, styles, etc.

(The pages—the entire NetNewsWire website, in fact—are still under construction for the 2.0 release. But these URLs are stable and usable.)

Help book

The help book was updated with new pages. Some older pages were updated to reflect recent changes. (To open it, choose Help > NetNewsWire Help.)

© Copyright 2005-2008 NewsGator Technologies, Inc.


NetNewsWire: More news, less junk. Faster