NSURLConnection Crashing Epidemic

January 24th, 2008

I’m proud to say that all of my apps are pretty solid. They rarely crash. At least, I assume they rarely crash, because I very rarely receive crash reports from users. When I do, it’s usually from beta testers before the application has been shared with the general public.

But after Apple released 10.4.11, I started receiving crash reports at an accelerated pace. The log is the same in every instance, and culminates in what appears to be a threaded NSURLConnection caching operation:

-[NSURLConnection(NSURLConnectionInternal) 
	_didFinishReturnCachedResponse:]
-[NSHTTPURLProtocol startLoading]
-[NSURLConnection(NSURLConnectionInternal)
	_performOriginLoad]

Now it so happens that WebKit is the one crashing in many of these cases, but I suspect the problem is more widespread than that. In any case, the problem is definitely more widespread than just MarsEdit. Searching Google reveals a number of similar results, from a variety of applications, including Apple’s own.

If you’re a developer and your application uses WebKit or NSURLConnection, chances are you’ve noticed an increase in crash reports, too. Always on 10.4.11, always involving NSURLConnection. If you’re a user running 10.4.11, chances are you’ve noticed that network-enabled applications seem to be a bit more flakey and crash-prone.

The fact that the bug seems to be fixed in Leopard makes me think that this is a bug whose source was identified and fixed. Now the question is, will Apple ever ship a 10.4.12 containing a fix? Or will those users be stuck in crash-ville forever?

Apple needs to get this fixed. For these poor 10.4.11 users who got stuck with a buggy URL loader, and for us poor developers who have to gently explain to them that it’s out of our control. I have to assume there’s already a bug reported against this, but better safe than sorry, I wrote up another one: Radar #5704773.

So why I am I writing this blog entry? Because I want other developers who read my blog or who find it by Google search to know that they’re not crazy. And I want users who run into this crash to please remember to send the crash report to Apple. They need to know that this is a serious issue that is impacting you and the apps you use.

NetNewsWire As Syndication Router

January 23rd, 2008

My friend Brent Simmons, developer of the amazing NetNewsWire client, which I think I neglected to mention, but you probably learned anyway, turned free eariler this month, has written up a nice summary of the ways in which NetNewsWire serves as a router for incoming RSS feeds.

I’m especially struck by this analysis because the metaphor is very much how I see an application like NetNewsWire evolving into the future. I use the application myself for all my “regular feeds,” but I also find myself using it as a “copy/paste” stopover point, for instance, when I want to subscribe to a podcast in iTunes. I click the RSS feed URL on some podcast home page, and it pops up in NetNewsWire, where I copy and cancel the “add feed” dialog.

Taking the “RSS router” idea to the next level, I’d like to see NetNewsWire able to handle incoming RSS subscriptions transparently and without intervention. For instance, what if clicking on an RSS feed that contains a bunch of audio files as cargo, could be automatically determined by NetNewsWire, and it forwards the feed on to iTunes for me?

As the world becomes more and more syndicated, I need something smart to serve as the “post office” for RSS delivery to my Mac. And NetNewsWire is the perfect candidate.

One Year Later

January 22nd, 2008

One year ago today I signed the paperwork and handed over the check for my purchase of MacXword, the amazing crossword application that I renovated and released as Black Ink about two months later.

(Semi-interesting trivia: the transaction took place on the premises of the Leopard Tech Talk in Boston (Dedham, actually). Since the seller, Stephan Cleaves, lives up in New Hampshire, we agreed to meet at the event and complete the transaction during the lunch break.)

What a year it’s been! For one thing, it wasn’t but a month or so later that my acquisition frenzy continued with the purchase of MarsEdit from NewsGator. My work on MarsEdit last year culminated in the release of MarsEdit 2.0 in September, which has been praised by users and the media as a major step forward for the application. It even won an Eddy! I couldn’t be happier, and am busily working on further enhancements almost every day.

Thanks in part to my strangely accelerated acquisition schedule, I was asked to speak at the C4 Conference in Chicago, where I discussed many of the lessons I’ve learned in the process. This was a remarkable experience for me because it not only gave me an opportunity to challenge and overcome (or at least deal with!) my fear of public speaking, but it gave me good excuse to think about and rationalize what had actually happened over the course of the preceding several months.

Anyway, it just sort of occurred to me today that this was the one year anniversary of my taking a pretty big leap of faith, and that it was a good day to look back and judge the wisdom of it. In 2007 I went from being a full-time consultant to being a full-time indie software developer. One who does public speaking and sorta, kinda, you know, is respected and stuff.

It took money, time, and a lot of hard work, but it paid off.

It’s nice to look back and realize that many good things in your life only happened because you took a deep breath, evaluated your fears, and decided to jump into the future head first.

I wish a life-changing 2008 to all of you.

Skitch Public Beta

January 17th, 2008

My friends at Plasq software made an exciting announcement today: Skitch is now available as a public beta!

What is Skitch, and why might this be exciting to you? Well, Skitch is, in a nutshell, a screen capture and image editing utility that makes it extremely easy to edit, draw on, and type over images before uploading them to the web.

What’s especially great about Skitch is it just sits up in your menu bar, poised for action. Press the keyboard shortcut, grab a segment of your screen, and you’re off and running. Then double-click the title bar of the Skitch window and it’s gone as quickly as it arrived.

Skitch makes a great companion to MarsEdit. I often get requests for image editing in MarsEdit, which I take very seriously and plan to implement something along those lines. But in the mean time, Skitch makes a really excellent powerful add-on to your blogging workflow, and does a lot more than MarsEdit ever will on its own. Give it a spin!