Archive for June 5, 2011

Sunday, June 5, 2011

Steve Jobs at WWDC 1997 Q&A

Steve Jobs makes some very insightful comments in this video (via MacRumors). I started watching the bit about NFS home directories, but pretty much the whole thing is gold. It’s funny how he keeps saying what Apple should do before adding, “But I don’t make these decisions.”

The Future of NetNewsWire

John Gruber interviews Brent Simmons and Daniel Pasco:

SIMMONS: Yes. The fun and glory of being there on Day One [of the iPhone and iPad App Stores] was undeniably attractive. How could it not be? If I went into further details which I can’t go into, anyone would agree that I had to do it. To not go for it, both times, would have been flat-out insane.

Yet it was still a mistake. It would have been amazingly hard to say, “No, sorry, I can’t do it.” It would have gutted me and disappointed other people that I wouldn’t want to disappoint. But it would have been the right thing to do. I just didn’t know it then.

NetNewsWire is one of my favorite Mac apps ever, however I’ve found that I don’t enjoy reading feeds on iOS (in either NNW or other readers). This is both because of the limitations of the smaller touch devices and also because Google Reader syncing has not worked well for me. So I prefer to “process” feeds on the Mac and send longer articles to Instapaper for reading on iOS or Kindle.

I have little experience with Black Pixel, but I’m glad to hear that they have big plans for NetNewsWire, and I’ll anticipate whatever Brent does next.

Trivia: NetNewsWire, Daring Fireball, Mac OS X Jaguar, SpamSieve, and this blog all debuted within about a month of each other in the summer of 2002.

Objective-C Blocks vs. C++0x Lambdas

Mike Ash:

By allowing each lambda to specify how it captures things, the C++0x system allows more flexibility. With Objective-C blocks, a given variable is either __block or it's not. Every block which captures that variable must capture it in the same way. C++0x lambdas allow each lambda to make its own choice on how to capture. The mutable keyword even allows them to capture by value but retain the ability to change the copied value internally. The downside is considerably increased complexity.

Drive Genius 3 LE

Prosoft (via Macworld):

Drive Genius 3 LE is a special App Store version of Drive Genius 3 which allows you to work on your external, non-startup drives.

The Depth and Breadth of Python

Guido van Rossum:

Python plays an important role in Dropbox’s success: the Dropbox client, which runs on Windows, Mac and Linux (!), is written in Python. This is key to the portability: everything except the UI is cross-platform. (The UI uses a Python-ObjC bridge on Mac, and wxPython on the other platforms.) Performance has never been a problem -- understanding that a small number of critical pieces were written in C, including a custom memory allocator used for a certain type of objects whose pattern of allocation involves allocating 100,000s of them and then releasing all but a few.

DDMathParser

After abusing NSPredicate, Dave DeLong has moved on to writing his own parser in Objective-C. Number handling is via NSNumberFormatter and NSDecimal.

Nook Simple Touch

Marco Arment compares the new Nook with the Kindle 3:

The Nook can’t follow web links, since there’s no browser. The Kindle’s browser is awful, but it’s there if you need it. This isn’t a problem with most novels, but it’s relevant for many modern magazines and newspapers that are embedding links, and any content that originated as web pages (like Instapaper).

Any object registers as a “touch” on the screen, including clothing and blankets.

Amazon seems to have a much better catalog and ecosystem.