Archive for November 2009

Sunday, November 29, 2009

Pie Guy

Pie Guy is a Pac-Man-style iPhone game from Neven Mrgan. It’s amazing what he can do with a local Web app (using JavaScript and WebKit HTML extensions), although because it’s a little slow to respond it might not fool you into thinking it’s a native app.

Saturday, November 28, 2009

NSError** Is Hard

Bill Bumgarner highlights a non-intuitive part of the NSError contract: it’s not safe to look at an error object unless the method returned failure.

Tuesday, November 24, 2009

iPodRip Renamed iRip

The Little App Factory:

Now, you may be saying that we deserve it for using Apple’s trademark but no, in Australia it doesn’t work that way. Our Trademark Act of 1995 states that if “the person uses the trade mark in good faith to indicate the intended purpose of goods” then we are not causing an infringement. When we created the name back in 2003 it was quite simple: Apple was advertising “Rip, Mix and Burn” and my software ripped your iPod back to your computer. Hence, the logical conclusion was iPodRip.

They couldn’t rename it “PodRip,” either. John Gruber:

That’s crummy. “iPod” is Apple’s. “Pod” is just a word.

Sunday, November 22, 2009


Jonathan Rentzsch has written an AppleScript to enable the Xcode warnings that Peter Hosey recommends.

Thursday, November 19, 2009

Sparklines in Excel

Microsoft adds Edward Tufte’s sparklines to Excel 2010 (via Philip Greenspun).

Friday, November 13, 2009

Airfoil Speakers and the App Store

Paul Kafasis, John Gruber, and Manton Reece discuss Apple’s rejection of a bug-fix update to Airfoil Speakers Touch because of images that it displayed (but did not contain).

Update: Apple changed its mind.


Dangerous Cocoa Calls

Mike Ash has a great list of Cocoa APIs that are subtly dangerous. Note that since NSBundle isn’t threadsafe, neither is NSLocalizedString.

Update (2017-02-20): Charles Srstka:

In Swift 3, NSFileHandle was renamed to FileHandle, making it the de facto file handle class for use in Swift applications. Unfortunately, it’s not a very good API. NSFileHandle supports no error reporting whatsoever, instead throwing Objective-C exceptions whenever something goes wrong during reading or writing. There is no way that I know of to catch these exceptions in Swift, meaning that if a write failed because the disk ran out of space or something, there’s no way to deal with that other than crashing the whole application.

US Interstate Map

Cameron Booth has made a great map of the Eisenhower Interstate System (via Jason Kottke):

Drawing my cues from the original and best metro diagram, H.C. Beck’s wonderful London Underground diagram, I have rendered the Interstate system in a much simpler form. I have made the “major” highways (those divisible by 5) the framework of the map, with the “minor” highways reduced in importance and rendered as thinner grey lines. Even with these highways, a difference in the greys indicates whether they are even-numbered (west-east) or odd-numbered (north-south).

Now I feel like playing Ticket to Ride.

Thursday, November 12, 2009

Generics in Objective-C

Jens Ayton proposes that adding generics to Objective-C would allow for better static analysis with no changes at runtime or to existing code. Jesper concurs. This seems like a reasonable idea, although I’m not sure it’s worth the hassle and visual clutter. I don’t think improper typing is a major source of bugs.


Marcel Weiher points out that blocks are noisy compared to HOM. Of course, HOM can be more concise because it’s so much more limited. Chiefly, it requires predefined methods. He argues that this is a feature, not a bug, that HOM encourages good code and blocks encourage bad code. That’s not wrong, but with power comes the ability to shoot yourself in the foot. Blocks make the language much more expressive and solve problems that HOM can’t. Used judiciously, they can make for clean code.


Peter Ammon’s translates C type expressions (including function pointers and blocks!) into English—and vice-versa.

Monday, November 9, 2009

One Finger Discount

Daniel Jalkut:

If you’re not a developer and are just looking for some excellent discounts on a huge variety of Mac applications, check out the One Finger Discount page and see what everybody has to offer.

I’m pleased to be participating as a developer and a customer.

Saturday, November 7, 2009

The Many Sliders of Photoshop CS4

Neven Mrgan has screenshots.

Wednesday, November 4, 2009

BBEdit 9.3

BBEdit 9.3 has a bunch of neat additions:

Tuesday, November 3, 2009

Implementing AppleScript Recordability

Andy Finnell:

The ASObj function creates an ASObject proxy object for any NSObject that implements objectSpecifier. invokeCommand takes care of marshalling the parameters into an AppleEvent, sending it, and unmarshalling the return value into an NSObject. The name of the command is the name of the name used in AppleScript, not the Cocoa implementation.

Then his controllers use the proxy objects to talk to the model through AppleScript.

Magic Mouse Review

Eric Bangeman:

If you want to right-click, you’ll need to get used to lifting your left-most finger off of the mouse in order for it to register correctly. If you have an Apple Mouse, you’ll already be used to it—I do it without thinking, but that doesn’t change the fact that lifting your index finger into the air so your middle finger can click is a more stressful position for your hand.

I use a Mighty Mouse with the main surface set as the primary button and the scroll ball set as the secondary button. This frees me from worrying about which side of the mouse I’m clicking and which finger I’m using, as my hand will be in different positions depending on whether I was using the scroll ball to scroll.

Click-Through in Snow Leopard

Pierre Igot:

How is the user supposed to “know” and remember intuitively that click-through now only works in icon view mode and not in list view mode and column view mode? And how is the user supposed to “know” and remember intuitively that, even though click-through no longer works, “double-click-through” (to coin a phrase) still does?

Lukas Mathis:

I believe click-through in Mac OS X is fundamentally broken. It should be turned off for all interface elements, except for a few standard elements which always receive click-through and have hover states to clearly indicate that they are clickable.

Chris Clark:

I believe click-through should be disabled entirely.

Either would be fine with me. As Clark points out, you can hold down the Command key to indicate that you do want click-through.

Sunday, November 1, 2009

ATPM 15.11

The November issue of ATPM is out: