NetNewsWire Lite 2.1b18 Change Notes
22 March 2006
This page lists the changes in NetNewsWire Lite since 2.0.1
The current beta of NetNewsWire Lite is available via the beta page. The current release version of NetNewsWire Lite is available via the NetNewsWire home page.
Highlights of this release
Changes since 2.0.1
NewsGator Syncing
NetNewsWire now syncs with aggregators that use the NewsGator Online API. This mean you can sync with NewsGator Online (a web-based reader) and other applications from NewsGator and other developers, including Windows and mobile aggregators.
Sync options have been moved from the Preferences window to a new sync options window: choose to get started. To set up NewsGator syncing, enter your account info in the sync options window, then do an intial sync: choose to merge subscriptions or replace subscriptions online or locally.
After the first sync, subsequent syncs happen automatically, while refreshing feeds. (As opposed to NetNewsWire’s .Mac/FTP syncing, NewsGator syncing happens in the background: it’s much less obtrusive. No big modal dialog for your normal syncs.)
Universal Binary
NetNewsWire runs natively on both Intel and PowerPC machines. (In fact, it is developed largely on Intel Macs.)
NetNewsWire now requires OS X 10.3.9 or greater.
Performance enhancements
Saving data to disk
One of the major bottlenecks came when writing new and updated information to disk. NetNewsWire is now much faster at saving data.
It now uses the binary plist format which is much faster than the XML format. The drawback is that you can’t really look at data files with plain-text editors anymore—but they’re *much* quicker to write to disk and they take up less space, so it’s on the whole a good thing. (You can of course still open and edit them with Property List Editor.)
NetNewsWire now writes data (feed items, subscriptions list) to disk in a background thread (mostly). Previously it was doing so on the main thread (usually), which could block the UI if it took more than an imperceptible amount of time to update the disk.
NetNewsWire used to always write to disk immediately after parsing a feed, but now it waits for the next scheduled write, which should give better performance during feed refresh sessions.
Some unused data that was being written to disk is no longer being written, which further enhances performance.
Raw XML Source performance fix: when downloading feeds, in some cases the raw XML source of a feed (if it’s new or updated) would get written to disk twice. Now it just gets written once. (This probably won’t make a perceptible difference except with those weird feeds that weigh in at half-a-megabyte.)
Performance when subscription list changes
NetNewsWire was doing way too much work when the subscription list changes (either with adding/deleting a feed or moving a feed). Fixed.Mark All as Read performance
Mark All as Read is faster—it updates the database in a background thread, so it appears faster, so it doesn’t block the UI.Feed parsing and processing performance
Some string utilities have been optimized that make RSS parsing (most of all) faster and use less transient memory.
Post-download feed processing is a little extra faster now especially for people with non-zero persistence settings. (NetNewsWire was recalculating the same date and prefs settings once for each item in the feed, but now it only calculates these things once.)
Cache folder and performance
The following items have moved from ~/Library/Application Support/NetNewsWire/ to ~/Library/Caches/
Favicons
FeedImages
FeedSource
They have also had a .noindex suffix added, so Spotlight won’t index new or changed items in those folders.
Reasons for doing this: 1) these really are cache items and don’t need to be backed up, and 2) preventing Spotlight from indexing these helps performance (since these files may change often and there’s no usefulness in having Spotlight index them).
In addition, the WebKit cache has been moved to a sub-folder: ~/Library/Caches/NetNewsWire/WebKitCache/
Print Command
Page Setup and Print commands have been added to the File menu. You can print the frontmost webview (news item or browser page). (They don’t work right for the Combined View yet.)Normally the stylesheet is not included when printing the description pane. If you want the style sheet to print when printing a description item, set a hidden pref in Terminal:
defaults write com.ranchero.NetNewsWire includeStyleSheetWhenPrinting 1
To turn it off, make the 1 a 0 instead.
Post to del.icio.us
In the News menu is a new command: Post to del.icio.us. It works with the selected news item or the frontmost browser tab.
You can choose what app to use to post to del.icio.us. The default is to use your default browser, since that’s probably what you’re used to using. You can also use NetNewsWire (opens a browser window), Cocoalicious, or Pukka. See the Posting preferences pane.
User Interface Changes
Subscriptions List
Selected item is now bold text, to make it easier to read.
The splitview is now one-pixel wide, like the kids like so much these days. There’s a little grabber thing below the subscriptions list too. (Using RBSplitView, which rocks: http://www.brockerhoff.net/src/rbs.html)
The default background color is now rgb 250 250 255—a light blue instead of plain white. This helps set it off from the rest of the content, now that the splitview is so narrow.
Headlines table
The circle that goes with unread headlines in the headlines table is now the same color as the text color. (And it’s now white when the item is selected, which shows up better on the selection highlight.)
When using traditional layout, the splitter between headlines and descriptions is now a non-standard fancy splitter.
Subscriptions sorting
The subscriptions sorting menu items have been promoted up a level inside the View menu, to make them easier to find. See the submenu named Sort Subscriptions By.
In addition, the settings for sorting inside groups only and animating sorting are now menu items in that submenu—they’ve been removed from the Preferences window.
Errors window, XML Source window
Both of these use semi-transparent black text views with colored text. The idea is just to look cool, purely and simply.
Main window status bars
Now doing the two-tone glass thing instead of the gradient thing. (Injects a little freshness into the UI.)
Color window
The colors options have been moved from the preferences window to their own window. Choose to open the window.
I think it’s more discoverable and usable this way. (And—bonus!—I could switch to using bindings and delete a bunch of code!)
Removed color option for alternate headlines row. It just uses the standard colors now.
Added colors option for subscriptions with 0 unread items. Default is black.
Added colors option for feeds that haven’t updated in 60 days. Default is brown. (Kind of like yellow—caution—but yellow actually is unreadable on a white background, so we go with brown.) The idea behind this is to make it easier, without having to go to the dinosaurs window, to notice when feeds haven’t been updated in a while. (I call this feature "Merlin Mann Coloring." Obviously we’ll add more feed management features in the future.)
Added colors for read and followed headlines.
Gear menus
The various gear menus now uses regular menu font size rather than 11. (A la Mail.)
Mark All News As Read confirmation sheet
If you choose Mark All News As Read from the dock menu, a confirmation sheet or dialog now appears so you don’t accidentally mark all news as read.
Bug fixes
Atom parser bug fixes
The HTML generator didn’t handle the case very well where Atom link elements don’t have a title.
When there are multiple alternate links, they are all displayed.
The enclosure header view now handles the case where the type isn’t specified in the feed—it used to say "null" for type but now it says "type not specified in feed."
All this was to pass the link conformance tests on this page: http://www.intertwingly.net/wiki/pie/LinkConformanceTests
Fixed a crashing bug triggered by this (very invalid) feed: http://iht.com/atom/technology.xml
Atom date bug fix
NetNewsWire wasn’t interpreting dates like this properly: 2006-02-03T21:21:50-08:00
What would happen is that it would be offset by 8 minutes rather than 8 hours: 2006-02-03T21:21:50-0008
I believe it’s an Apple bug in +[NSCalendarDate dateWithString:calendarFormat:]—so I reported it. Radar: #4442520.
RSS Parser
Removed the special case where a feed has a very long title but no description—it was ellipsizing the title and putting the original title in the description. No more. (No more mollycoddling! Make good feeds!)
RSS/Atom Discovery bug fix
Sometimes web-page feed discovery would fail when single quotes were used in the link tag. Fixed.
View-Source window
There was a bug where the view XML source window didn’t take into account text encoding—now it does.
Headlines table
It now picks up the graphite alternating row color when using the graphite look.
Errors window
The console text is updated now always on the main thread. (Fixes a rare but real crashing bug.)
The console text is trimmed if it gets over 100K. (This is so it doesn’t just grow and grow forever.)
Subscriptions list
Contextual menu for super feed no longer has errant separator at top.
Sites Drawer open window resize
If you have multiple monitors, NetNewsWire no longer erroneously resizes the main window when you open/close the Sites Drawer.
OPML import subs crash fix
Fixed a crashing bug with an OPML feed found in the wild that had invalid OPML lines like this: <outline xmlUrl="feed://gizmodo.com/atom.xml">Gizmodo</outline>
Pre-flight local-file subscriptions
NetNewsWire now checks, before reading a file subscriptions, that it’s not a folder.
NetNewsWire also checks that the file size isn’t greater than 20 MB. I’ve seen people accidentally subscribe to local media files—which NetNewsWire then reads and tries to parse as a feed. It’s not a good outcome, and it can be hard to recover from if you have NetNewsWire set to refresh at startup. (Now it will be okay.)
Misc.
Enhancement for feeds without guids: avoiding “reruns”
When feeds don’t have guids (or other form of unique ID), NetNewsWire now matches based on <link> when possible. This should cut down on perceived reruns in feeds that lack unique IDs. It also means that you’ll see the Highlight Differences feature work sometimes for feeds without guids.
Drag Safari feeds into NetNewsWire
You can now drag multiple feeds from Safari’s bookmarks organizer into NetNewsWire’s subscriptions list. This makes importing feeds a bit easier. (You can import all: click on “All RSS Feeds” in Safari’s bookmarks organizer, select all your feeds, drag them into NetNewsWire’s subs list.) Note: we don’t do drags of folders yet from Safari, but obviously it would be nice to have.Sites Drawer
Two new categories: Cars and Games. Added 79 feeds (see New in 2.1).
Cocoa bindings
We’re now using Cocoa bindings in a number of different places (especially in the Preferences window, but other places too). This could be a source of new bugs, so it’s important to notice bugs even in places you wouldn’t expect to see any.
Watching for prefs changes
The way NetNewsWire watches for and handles changes in prefs has been completely overhauled—now using key-value observing, which is more efficient than the approach it was using. (Which should mean small but probably not perceptible performance gains when doing things that change prefs.)
This could of course lead to bugs—watch for things like changing a pref that seems to have no effect.