NetNewsWire 4

Posted on September 05, 2015

I’m not sure if I discovered Daring Fireball through NetNewsWire, or NetNewsWire through Daring Fireball. Either way, in my mind the two are inexorably linked to my introduction to the Mac community. A group of people who value usability and good design, typography, readability, and simple good sense. Before the Mac, my thoughts on software were that it was either written by thousands of contributors across the globe, or thousands of drones in basement cubicles. What I learned through NetNewsWire was that individual craftsmen made the best software, and I could get to know them through their work. I started making it a point to follow the people who made the software I used.

NetNewsWire was developed by Brent Simmons, one of the first developers who’s blog I made a point to follow. I followed him as he was hired by NewsGator, and after he left and went independent, and when he sold NetNewsWire to Black Pixel. Around this time RSS readers hit a rough patch when Google shut down Google Reader, the backend syncing engine used by NetNewsWire and many other RSS readers. I wasn’t too worried at the time. Several of the competing apps quickly adopted alternative syncing engines, and I expected NetNewsWire to follow suit.

It didn’t.

Black Pixel decided against supporting third party syncing engines and opted instead to build their own. In the man time, the older version of NetNewsWire atrophied. With no syncing engine the app was isolated, an island that needed to be a peninsula. I wanted to be able to skim the news on my phone or iPad and not have to re-read the same headlines on my Mac. Eventually I abandoned NetNewsWire in favor of ReadKit. ReadKit was almost as nice, but not quite. I still longed for the keyboard navigation and overall ease of use that I’d grown accustomed to. I kept checking in to see if there was progress, but very little was made public.

I’ve given Black Pixel quite a bit of grief over the past couple of years regarding their treatment of my favorite news app. In my mind it had joined the graveyard of struggling, once amazing, Mac apps along with OmniWeb, VoodooPad and Yojimbo. Apps with personality and history, but unfortunately no future. Apps that couldn’t quite make the transition to the iOS era.

I bought a new license straight away when NetNewsWire 4 was first announced. Then there were a few betas, few and far between, followed by a long period of silence. I assumed that the app was not considered profitable or important enough to warrant serious development time. Perhaps Black Pixel considered the purchase of NetNewsWire a mistake, and were happy to brush it under the table and forget. I don’t know. As far as I know that may well be the case, but today I’m running the final released version of NetNewsWire 4, complete with a custom syncing backend and a brand new iOS app.

NetNewsWire 4 feels like a return to NetNewsWire Lite. It lacks the power user features of the old pro version, like custom article styles, but it’s still snappy and responsive. I can still breeze through feeds using the arrow keys, and NetNewsWire still gives me a beautifully subtle highlight that flows through the selected feed when I hit the right arrow to open an article in Safari. Nothing else has ever felt quite right.

Quite a bit has been said about the loss of features in the new version, including wondering just who this app is aimed at. Obviously, it was aimed at me. Well, or someone like me who sees the app for what it is. A rewrite of a legacy system that drops both features and cruft to pour a new foundation to build on. NetNewsWire 4 is simple, but I doubt NetNewsWire 5 will be. Now that they have the base application solid, I hope that Black Pixel will be able to add back in the features missing from version three.

All in all I’m very happy with the few days I’ve spent with NetNewsWire 4. I don’t have anything to say about the iOS version just yet, other than to say that like it’s older brother on the Mac, iOS feels like a new start. With a solid syncing engine, a refined reading experience, and a companion iOS app, NetNewsWire has me wondering if I shouldn’t go check back on some other old favorites.

Tree history in Vim

Posted on July 31, 2015

Jump to Post

I’m sure it happened to you too.

Just remember. That horrible moment when you time-travelled using undo - to copy and paste that line you deleted twenty minutes ago but for some reason you really, really, need it now - and then you hit a key and insert a letter. And just like that, your way back is gone.

The only appropriate reaction to that is either eating your computer or turning into a hulk and going on a neighbourhood-destroying rampage.

Yea, as a matter of fact, that has happened to me. Great Vim tip, especially combined with saving work when switching away from Vim.

Windows 10 Shares Your Wi-Fi With Contacts — Krebs on Security

Posted on July 29, 2015

Jump to Post

… it does allow anyone in your Skype or Outlook or Hotmail contacts lists to waltz onto your Wi-Fi network — should they ever wander within range of it or visit your home…

Any Windows users out there might want to hold off for a few on that big upgrade.

Coming Soon – AWS Device Farm Support for iOS Apps | AWS Official Blog

Posted on July 29, 2015

Jump to Post

We launched AWS Device Farm earlier this month with support for testing apps on Android and Fire OS devices.

I am happy to give you a heads-up that you will soon be able to test your apps on Apple phones and tablets! We plan to launch support for iOS on August 4, 2015 with support for the following test automation frameworks:

This is very interesting news for the thousands of iOS and web developers out there. I wasn’t too surprised at the Android device testing, but this is something different.

Work - Transitional

Posted on July 28, 2015

Jump to Post

I could see that my 9-to–5 job wasn’t my destiny. It didn’t fulfill me or stimulate significant personal growth. It wasn’t that I was bored, but it was more like feeling out of place—I could and should do more with my talents.

I know the feeling. Right now I’ve never been happier with where I am in my career, but the feeling Kevin describes is how I felt for seven years at my previous job. I felt like I was slowly atrophying in that cubicle. Today, after making the jump to a much smaller company where I have much more responsibility, I feel like I’m doing the best work of my life. It was scary, but worth it.

What 2,000 Calories Looks Like - The New York Times

Posted on July 28, 2015

Jump to Post

Writers, nutritionists, doctors, chefs and Michelle Obama have all been promoting a hot new diet: home-cooked food.

Looking at this list makes me never want to eat out again. (via The Loop)

Link Blogging With Quicksilver

Posted on July 25, 2015

I can’t quite make up my mind on how I feel about “link blogging”. On the one hand, there’s already a lot of people out there who do it better than I can. On the other hand, sometimes I want to share something and make a few pithy comments about it. It’s out of that second feeling that this script is born.

The script started out as an Automator action, but having an Automator wrapper around a single shell script seemed like overkill.


TITLE=`osascript -e 'tell application "Safari" 
    set pageTitle to (do JavaScript "document.title" in document 1)
end tell'`

URL=`osascript -e 'tell application "Safari" 
    set pageURI to (get URL of document 1)  
end tell'`

TEXT=`osascript -e 'tell application "Safari"
set selectedText to (do JavaScript "(window.getSelection().toString())" in document 1)
end tell'`

QUOTEDTEXT=`echo -n ">"; echo -n $TEXT`

LINK=`echo -n [Jump to Post]; echo -n \($URL\)`

NAME=`echo $TITLE | sed s/\ /-/g`
POSTNAME=`date "+%Y-%m-%d"-$NAME`   

POST_DATE=`date "+%Y-%m-%d %H:%M:%S"`

echo "---" >>$POST_FQN
echo "layout: post" >> $POST_FQN
echo "title: $TITLE" >> $POST_FQN
echo "date: $POST_DATE" >> $POST_FQN
echo "---" >> $POST_FQN

echo "$LINK" >> $POST_FQN
echo "" >> $POST_FQN
echo "" >> $POST_FQN

echo $POST_FQN

/usr/bin/open $POST_FQN

That first line is pretty ugly. I don’t recall when I wrote this, but it’s been working reliably for long enough that I don’t feel the need to change it just yet. Then again, a shell script that calls AppleScript that calls JavaScript seems pretty ridiculous.

This script looks at the current web page in Safari and grabs the title, URL, and any selected text and builds a new post in the format my site builder script expects. Similar to my previous New Post script, this one opens the new file in MacVim, ready for writing.

I call the script from Quicksilver using the Run… command, and tied the command to ^⎇ ⌘ P for a hotkey.

I might start putting more links on the site. There are often things that I find might be interesting to a certain segment of the Mac community, mainly the more technical and scientific groups, that I haven’t done anything significant with. I’d like to change that.

Starting a New Post With Automator

Posted on July 23, 2015

Automator is one of my favorite tools on the Mac, and unfortunately one of the most unappreciated. I have several workflows and services that I’ve built up over the years, things that I could have turned to a third-party tool like Keyboard Maestro, Alfred, or even my beloved Quicksilver for, but I like the simplicity of using a built-in application.

My “New Post” workflow is a simple example of using Automator to mix GUI elements with a shell script. There are only two actions. The first uses the “Ask for Text” action to prompt for a post title, and the second uses the “Run Shell Script” action to run this bit of bash:

NAME=`echo $* | sed s/\ /_/g`
POSTNAME=`date "+%Y-%m-%d"-$NAME`
POST_DATE=`date "+%Y-%m-%d %H:%M:%S"`
touch $POST_FQN

echo "---" >>$POST_FQN
echo "title: $*" >> $POST_FQN
echo "date: $POST_DATE" >> $POST_FQN
echo "tags: " >> $POST_FQN
echo "---" >> $POST_FQN

/usr/bin/open $POST_FQN

The first line removes spaces from the title passed to it from the Ask for Text action and replaces them with underscores so I can use the title as the URL slug. The second line adds the creation date[1] to the file name, and the third creates a full path to the file. The fourth line simply creates an empty file with the correct naming scheme for my site generator tool.

The collection of echo statements on the next few lines add YAML frontmatter to the post, a bit of residual formatting from the sites Jekyll roots. Finally, I use the Mac’s open command to start my favorite text editor, normally MacVim, and start writing.

Using Automator can be frustrating at times, especially when there is no action for something you think there should be an action for, but for manipulating text and mixing in scripting, it’s not bad.

  1. With apologies to Matt Gemmell. I’ve not yet committed to removing the ugly cruft from my URLs.  ↩

A Runner

Posted on July 17, 2015

My workout this morning called for five miles. Run two, walk one, run the last two. I think in the Fall or Spring it would have been fairly easy, but today, in the July heat and humidity, every step felt like dragging a pair of anchors. My muscles gave out sooner, my breath ran out faster… it was a hard workout. I finished it though, because what I’ve learned is that even when it’s hard, even when you are having a tough time and not going as fast as you’d like, you always have to finish.

I never imagined myself as a runner. I certainly don’t look like one. Before I started this friends of mine would talk about running marathons and half-marathons I’d look at them in wonder and think how I’d never be able to do something like that. Now I’ve run two 5ks, one 10k, and I’m scheduled to run another 5 and another 10 in the next few weeks. I get up at five almost every morning during the week and run, and normally have another long run on Saturday. I think after a few years of this I’m finally comfortable enough to say I’ve become a runner. Today, even though I’m not ready to say I’m training for a marathon, the possibility is there, for the first time in my life.

I’m not sure this would have happened without my iPhone. Every morning I strap it on my arm, launch the Nike+ app, start a podcast in Overcast in the background, and start the day. Before I used Nike+ I used the excellent Couch to 5k app, which gently took me through getting off my lazy butt and pounding the pavement. The most important thing I took away from that app was the routine. Once I ran the 5k I didn’t want to stop, so I switched to another app and a longer goal and kept going.

Running is my time. It’s what I do for myself, it’s how I make sure that the day is started right. It’s how I can put my busy mind to rest. It’s how I can balance staring into a computer screen all day solving puzzles with my concept of who I am and who I should be. Running is hard, running hurts, running is difficult and uncomfortable, running is calming, running is meditation.

I run in the heat and humidity. I run in the rain. I run in the freezing, bitter cold of winter. I run in the dark. I run before daybreak and I watch the sunrise over a pond along my route. I run with my dog. I run alone. I run in new shoes that give me blisters on my heels. I run when it hurts. I run when the weather is crisp and cool, and I’ve got all the energy in the world, and my legs forget their burden and carry me for miles and I feel like I could run around the world.

I’m a runner.


Copyright © 2007-2015 Jonathan Buys   Subscribe

ISSN: 2161-8119