I Dare You Not to Imagine a Story

No matter where I go, my imagination bristles and bucks at any attempt to quell the flood of visions and story. It’s really quite impossible.

Just yesterday, I went for a walk in the woods. It was a dreary and gray sort of day filled with mist and the threat of rain. The sort of day where every light twinkles and midday feels like a constant dusk.

In other words, it was wonderful.

Do you doubt me? Then here is a challenge…

Buried deep in this article is an except from a letter written in 1919. I dare you to read this clip and not think of a story.

A Story Just Watiing for Your Imagination

I feel confident that you won’t be able to do it. In fact, I think that after your read this short letter you’ll go to the article itself and look at the photographs. You’ll see the faces of the men. You’ll see their equipment and the ruin that remains. Your writer brain will take all of this in and you’ll begin to find yourself deep inside a world that only exists in your head.

Depending on your proclivities, you might imagine some fantastic horror tale involving a creeping and ancient evil lurking in the forest. You may think of some realistic historical fiction piece centered around the life of John Snow (or even the reporter of the events in the camp). The possibilities are endless because we are all different writers with different ideas and tastes, but one thing is constant: we are all beholden to the will of story.

We cannot help but be drawn into the tangled web we weave. We are writers.


So go on, I dare you not to imagine a story… and when you fall for my trick, I hope you’ll take up your pen and write it all down. I can’t wait to read it.

NewsBee 1.1 Available in the App Store

NewsBee version 1.1 is now available in the App Store! In addition to the new features listed below, I’ve also made substantial performance tweaks to NewsBee with respect to parsing feeds and just general loading of menus. Thanks to everyone who sent email and requested new features!

Please note that NewsBee is now free in the App Store. I want to thank everyone who purchased a copy. Future updates will also be free.

Multiple Sites in the Status Bar

NewsBee now supports adding multiple sites right to the status bar. This feature change makes it simple to keep your very favorite sites close to hand while still keeping true to NewsBee’s goal of up to date news without distraction.

Activating multiple sites is easy. Just select Preferences > General, select the site you want to add to the Status Bar and then click the “Add to Status Bar” button. When you close the Settings window, NewsBee will reload and display all of your changes.

To remove a site, just go through the same steps and click the “Remove from Status Bar” button.

Multiple Popup Sizes

By popular request, I’ve reworked the popup handler to allow for multiple sizes. I’ve also made a few performance improvements here too that should make loading popups even faster.

Changing popup settings is easy. Just select Preferences > General and then switch to the General tab. There is only one setting on this tab now and it’s for the popups. Move the slider to the size you want and then close the settings window. NewsBee will reload, applying all of your settings changes. The new popup size should be active at that point.

In addition to these major changes, I’ve also added a “Close this menu” option to each NewsBee menu. This option will close just that one site, leaving any others running. This is a convenience option to turn down the noise, as it does not permanently remove the site from the Status Bar. If you quit NewsBee and restart, the site in question will return. You need to go into settings to turn the site off if you want to remove it permanently.


NewsBee is a minimalist RSS reader that lives in your status bar and helps keep you clued into what’s happening without causing the usual distractions that plague most newsreaders (i.e. +1000 unread stories filling you with “RSS remorse”). More information about NewsBee can be found at http://www.jamiegrove.com/newsbee.

NewsBee in the Mac App Store

NewsBee 1.1 Preview

NewsBee version 1.1 is now with Apple for review and should be available very soon. In addition to the new features listed below, I’ve also made substantial performance tweaks to NewsBee with respect to parsing feeds and just general loading of menus. Thanks to everyone who sent email and requested new features!
For a limited time, NewsBee is free in the AppStore. Get it now and get version 1.1 for free when it launches!

Multiple Sites in the Status Bar

NewsBee now supports adding multiple sites right to the status bar. This feature change makes it simple to keep your very favorite sites close to hand while still keeping true to NewsBee’s goal of up to date news without distraction.

Activating multiple sites is easy. Just select Preferences > General, select the site you want to add to the Status Bar and then click the “Add to Status Bar” button. When you close the Settings window, NewsBee will reload and display all of your changes.

To remove a site, just go through the same steps and click the “Remove from Status Bar” button.

Multiple Popup Sizes

By popular request, I’ve reworked the popup handler to allow for multiple sizes. I’ve also made a few performance improvements here too that should make loading popups even faster.

Changing popup settings is easy. Just select Preferences > General and then switch to the General tab. There is only one setting on this tab now and it’s for the popups. Move the slider to the size you want and then close the settings window. NewsBee will reload, applying all of your settings changes. The new popup size should be active at that point.

In addition to these major changes, I’ve also added a “Close this menu” option to each NewsBee menu. This option will close just that one site, leaving any others running. This is a convenience option to turn down the noise, as it does not permanently remove the site from the Status Bar. If you quit NewsBee and restart, the site in question will return. You need to go into settings to turn the site off if you want to remove it permanently.


NewsBee is a minimalist RSS reader that lives in your status bar and helps keep you clued into what’s happening without causing the usual distractions that plague most newsreaders (i.e. +1000 unread stories filling you with “RSS remorse”). More information about NewsBee can be found at http://www.jamiegrove.com/newsbee.

NewsBee in the Mac App Store

How to Scale a WebView in OSX to Preview Content

While working on updates to NewsBee, I decided to tackle a thorny problem I pushed off in version 1.0: scaling a WebView in OSX.

For those of you who don’t know, NewsBee is a minimalist RSS reader that lives in your status bar and helps keep you clued into what’s happening without causing the usual distractions that plague most newsreaders (i.e. +1000 unread stories filling you with “RSS remorse”). One of the things NewsBee can do is show a little popover window to display the content of the RSS feed. It’s a fun feature and for sites with nice RSS entries, it’s a quick way to see what’s happening without getting too invested in the noise of the feed.

NewsBee can show mini previews of content.

This feature makes use of a NSPopover with a WebView embedded inside and it works pretty well. The problem is that I chose to make the popover a bit small to stay out of the way. However, if an image is too larger to fit within the constraints of the page, it’s likely to overflow beyond the visible page. Here’s an example using Apple’s home page.

You’ll notice that the rest of the iPad Mini is off the screen. This is exactly what will happen if you have a WebView in an OSX app and the content is larger than the visible area.

In iOS, this is no big deal since scaling is part of the UIWebView class (scalesPagesToFit:). In OSX, you have to roll your own as the WebView class does not support this method.

To solve this problem, I could add hack the HTML I’m putting into the WebView. I could add some CSS3 scaling or even do some fancy Javascript to resize the WebView based on the calculated size of the page. And as you might expect, I tried these options and ultimately decided to abandon them because they either:

a) Made the WebView too large
b) Scaled the page in a way that made the content look funny
c) Produced inconsistent results

So, I launched NewsBee 1.0 without scaling content and of course the first request I received from live users was the ability to resize the popovers. 🙂

How to Scale a WebView in OSX to Preview Content

As I noodled through the problem, a friend pointed out that Apple Mail has a preview button on all URLs. When you tap it, Mail shows you a snapshot of the page in a NSPopover. Here’s what that looks like:

After testing with a variety of links, I saw that Apple was getting flawless results on resizing content. Then it occurred to me that they were likely loading the content in an off screen WebView, taking a image representation of the view, and then scaling that according to the size of the NSPopover view. And guess, what? It works.

Here’s the process for setting up the off-screen WebView:

  1. Create a WebView about the size of a regular browser window (eg. 1000px x 1000px).
  2. Set the delegate so that you can handle didFinishLoadForFrame: when content is loaded.
  3. Load the content by calling loadRequest: on the mainFrame of the WebView or by passing HTML to the mainFrame by using loadHTMLString:.


WebView * placeHolder = [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 1000, 1000)];
[placeHolder setFrameLoadDelegate:self];
// Assumes displayHTML is a NSString with valid HTML.
[placeHolder.mainFrame loadHTMLString:displayHTML baseURL:yourNSURL];

At this point, you just need to implement didFinishLoadForFrame: method of the WebFrameLoadDelegate class to capture and process the results.

Here’s the code for implementing the didFinishLoadForFrame: method of the WebFrameLoadDelegate class:


- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame {
NSBitmapImageRep *imageRep = [sender
bitmapImageRepForCachingDisplayInRect:[sender frame]];
[sender cacheDisplayInRect:[sender frame] toBitmapImageRep:imageRep];
popoverBackground = [[NSImage alloc] initWithSize:[imageRep size]];
[popoverBackground addRepresentation: imageRep];

// imageView is a NSImageView I've hooked up in IB
[imageView setImage:popoverBackground];

}

In Interface Builder, my NSPopover xib as a Custom View with a single NSImageView inside. The NSImageView uses autosizing to stay aligned with the size of the Custom View. The Image Cell inside the NSImageView is also set to scale proportionally down.

As a result, NewsBee 1.1 will have much better popover previews. Users can select from multiple sizes and the full page will be displayed and scaled accordingly. The other side benefit is that doing all the loading in an offscreen WebView seems to speed things up quite a bit.

NewsBee is #4 in Mac app news downloads

I just checked the Mac App Store and was pleasantly surprised to find NewsBee at #4 in top paid news downloads!

NewsBee is a minimalist RSS reader that lives in your status bar and helps keep you clued into what’s happening without causing the usual distractions that plague most newsreaders (i.e. +1000 unread stories filling you with “RSS remorse”). More information about NewsBee can be found at http://www.jamiegrove.com/newsbee.

NewsBee in the Mac App Store