inessential by Brent Simmons

October 2009

Last day of NetNewsWire introductory pricing

In a nutshell: the price of the for-pay, ad-free versions of NetNewsWire for Macintosh and for iPhone will go up at midnight tonight. If you were thinking of buying, please don’t miss out. (Last day to save $5 on the Mac version and save $3 on the iPhone version.)

See the sale ends today post on for more detail.

Use the money you save to buy other cool iPhone apps! A few I recommend are Pickin’ Time, Postage, and Word Spin.


An interesting link on Daring Fireball today has me thinking about vaccines.

I’m still living with the effects of the chicken pox I had in third grade.

There was no vaccine then. Every kid just got it. It swept through school, and nobody tried too hard to prevent the spread, because every kid would get it, and it was better to get it when you were young.

It was just a thing. We thought we were modern because it was just chicken pox — not polio or smallpox or one of those scarier diseases that had been conquered.

But now there is a vaccine, and I wish like crazy there had been a vaccine when I was a kid.

I was nearly hospitalized — my Mom tells me I was within an hour or so of having to go the hospital when I could finally sip a few drops of water without vomiting.

I remember vomiting so much that the vomiting itself didn’t even bother me any more. I started crying out of frustration. Just when I started to feel a little better, a little cooler, and hungry and thirsty, I’d try the smallest sip of water, and whatever was left in me to come up would come back up. It just went on and on.

For days? I don’t know. It seemed like weeks of nights. Trying to sleep. Itchy, exhausted, unable. The screaming heat inside that wouldn’t end. Then the stomach convulsions.

I was told I had chicken pox not just on my skin but inside me, too. Could that be true? Was that possible? I still don’t know — but I didn’t question it, because it sure felt like it.

Of course I had chicken pox on my head. So I had pink hair — pink with the Calamine Lotion my Mom applied. The pink was mortifying to a third-grade boy.

A friend of my Mom’s, a woman from down the street, came by one day. (She was cool: she drove a white Corvette. Here’s one.) I can still feel the embarassment of my pink hair. The spots all over my face I could deal with: the pink hair was devastating.

I was finally able to drink water, and then I moved up to jello and then on to chicken noodle soup. I was able to sit at the dinner table and watch the network news. (ABC news broadcast from WPVI in Philadelphia.)

I got better. After about three weeks of the chicken pox, I could return to school, even though still slightly scarred. Prepared to be teased.

I was the smartest kid in the grade. I won every spelling bee. I got 100% test scores. I always had.

And though I was prepared to be teased for the visible remains of my chicken pox, I was not prepared to get in trouble with my teacher for cheating.

Cheating? Me? People cheated off me, not the other way around.

But I was looking at someone else’s paper. Because I couldn’t see the chalkboard anymore and I couldn’t read the questions to copy them down.

I kept getting in trouble, and I kept getting teased, and I was angry and hot-headed a whole bunch of the time. I started getting in trouble for accidents, and for things other kids had done. (Which wasn’t that new, actually: I was in trouble at school, or about to be and dreading it, most of the time as a kid.)

It was a few weeks before news got to my parents and they took me for an eye exam.

Chicken pox had ruined my eyesight.

So I got glasses, and that worked. But my vision, once gotten a head-start down that path, kept getting worse for a few years.

Though it pretty much stabilized while I was in high school, it got bad enough that it’s dangerous for me to walk around my own house with my contact lenses out.

I can tell you that my staircase has 16 steps. (Easy number for a programmer to remember!)

To read with my contacts out, I have to hold the book so close that I have to close one eye.

I can look down at my feet and not see the cat.

My parents were both near-sighted — they both got glasses in the eighth grade. Their eyesight is better than mine. Odds are I would have gotten glasses around the eighth grade too, and had eyesight about like theirs. Not great, but not terrible.

I wish, to this day, that there had been a chicken pox vaccine.

I later got shingles when I was 20. I won’t be surprised to get it again, but I sure hope not. Shingles hurts.

So I was out about three weeks from school. I hated school anyway.

But we were doing a special unit on the history of native Americans, which I thought would be pretty cool.

I missed some arts and crafts things — creating a diorama, carving a miniature dugout canoe out of Ivory soap. I was just as glad to miss that stuff, as I liked reading and writing better.

I also missed out learning about the history of native Americans, though I did pick up some later.

Which brings me back to the subject of vaccines. And, you know, I thought I was going to, but I don’t really need to state the obvious.

Code relationship between TapLynx and NetNewsWire

The code behind TapLynx and NetNewsWire for iPhone are similar — there is plenty of overlap — but they’re not the same.

Database engine

TapLynx is the engine I originally wrote for NetNewsWire 2 for iPhone. But then, in a decision that’s easily second-guessable, I wrote a new engine for NetNewsWire for iPhone. The TapLynx version is mature: the one in NetNewsWire for iPhone is much less mature.

TapLynx was originally an iPhone OS 2.x project: it uses SQLite (via FMDB) instead of Core Data. But when I went to write NetNewsWire 2, Core Data was newly-available on the iPhone, and I was convinced that it’s the future.

And it is the future, and I plan to switch TapLynx over to Core Data — but the code needs some more work first.

So, in a nutshell, NetNewsWire for iPhone is the more cutting-edge of the two apps in terms of code. But I’m fixing those cutting-edge bugs: and, once fixed, I believe the Core Data version will be great for TapLynx.

The syncing difference

Another big difference between TapLynx and NetNewsWire is how it reads feeds. NetNewsWire syncs with Google Reader; TapLynx reads feeds directly from the source. TapLynx doesn’t have to sync subscriptions or read states or starred items or anything like that.

Syncing and reading feeds directly are very, very different, and will get more so as I make NetNewsWire’s syncing more efficient.

TapLynx has it easy. :)

TapLynx 1.0

TapLynx is a framework for building media-based iPhone apps without needing to do any programming.

It’s a tool for developers, though — you still use Xcode to build the app. You configure it via a property list file, add artwork and feeds, build it, upload it. (You build a fully-native Cocoa app: it’s not like compiled Flash or something like that.)

Though programming isn’t required, you still can do some programming: a tab can have a custom view controller. An example case: you’re building an app for a sports team. TapLynx provides the news display, photo galleries, and audio and video. But you want a tab that shows scores and stats — that’s the tab that you write. But since TapLynx provides the other features, you can save time, make more money, and concentrate more on the part that makes your app special.

Some technical details

TapLynx is a static library. It’s a whole app in a static library. Since the views are things like UITableViews and UIWebViews, there’s no need for xib files. (I’m not anti-xib, by the way. But when a view is just a table — and it needs to be configured in code — a xib doesn’t make sense.)

The SDK provides a sample skeleton app that links to the library. The skeleton app has no code other than its main method.

The features, colors, feeds, and so on are all configured in a single property list file. Artwork is added to the Xcode project just as you would with any other project. There’s no black magic going on, in other words.

It’s 1.0

The future of TapLynx will be driven by the needs of developers. We can’t know in advance everything you’ll want and need, but we’ve had some experience building iPhone apps and we know what the basics are.

For instance, I’m sure you’ll need more programming hooks, ways to customize and add features via your own code. But I don’t know in advance what those will be. (The custom tab was obvious: the next step isn’t obvious.)

So we’ve set up a Google Group for TapLynx as a place for feedback. I’d love to hear what would help you make apps faster, make your clients happy, and make you money.

It’s also for web developers

We’ve seen people build apps who aren’t Cocoa developers — or who hardly ever even use a Mac, let alone Xcode.

We quite definitely had website agencies and web developers in mind. For example: when specifying a color, you just use the hex value, as in #48EF93. We were thinking of you. :)

My favorite feature: over-the-air updates

When we were working with All Things Digital on their app, they wanted to have the same kind of immediate control over the app as they have over their website.

Well, in the world of iPhone development, we all know there’s no such thing as immediate. (At this writing, I’ve had a crashing bug fix — a two-line change — for NetNewsWire for iPhone in review for 10 days now.)

We came up with this: the config file that you edit to create the app can also be hosted on the web. The app will read that config file periodically (a period you can configure). Whenever there’s a new config file, it will re-configure itself.

This way you can add and remove feeds, change look and feel, etc. You might add a tab for a special event (Olympics, election, winter weather, whatever) and take it down later. Or add a photo gallery.

It even downloads the necessary artwork.

So you don’t have to do an App Store update and hope it gets up in time for the special event.

(It can’t download code, though, since that’s against the developer agreement with Apple. New code requires a new build and uploading to the App Store.)

A sort of homecoming

You probably don’t know this, but my experience before NetNewsWire was six years at UserLand Software where I worked on tools for developers and web publishers. I was there during very exciting days, during the early days of weblogs, during the development of RSS, XML-RPC, and OPML. I’ve been working with this same technology ever since.

But I forgot, until recently, how much I love doing developer tools. They’re fun to make — yes, totally — but even more fun is working with the folks who use them. It’s been coming back to me, and it’s like coming back to a great place I thought I’d never see again. (And some of the same people are there!)


Yes, you can follow TapLynx on Twitter.