Archive for September 2009

Wednesday, September 30, 2009


Jens Alfke’s Ottoman is a “lightweight, reliable key-value store with multi-version concurrency control.” It looks somewhat like an improved cdb with better concurrency.

Metadata Madness

John Siracusa:

4. The default Launch Services application binding policy should reference both file type and creator metadata, preferring the “modern” representations of each, and falling back to the classic Mac OS representations in their absence. The per-file “ultimate override” setting should be considered first. If that is not set, then the file should be opened by the application that created it. If that application is not installed, then the file should be opened by the default application assigned to that file type.…5. The Launch Services application binding policy should be configurable.

Notebook Batteries


For proper maintenance of a lithium-based battery, it’s important to keep the electrons in it moving occasionally. Apple does not recommend leaving your portable plugged in all the time. An ideal use would be a commuter who uses her MacBook Pro on the train, then plugs it in at the office to charge. This keeps the battery juices flowing.

Good to know, since I mostly use my MacBook Pro as a desktop. After using it on battery for just a few minutes, it takes 1.5 hours or so to get back to a full charge.

Wednesday, September 16, 2009

Improving the YouTube Favicon

Some cool pixels via Craig Hockenberry.

Tuesday, September 15, 2009

Perl and Python on Snow Leopard

John Gruber has some good information about the 64-bit versions of Perl and Python on Mac OS X 10.6. I think he’s mistaken about the AppleScript fragment, though. I don’t think it does what he expects on Mac OS X 10.5, either. As with most languages, “or” has low precedence in AppleScript, so his line was essentially saying if (_browser is not "Safari") or "WebKit" then. I think the most AppleScripty way to write this would be if _browser is not in {"Safari", "WebKit"} then.

Friday, September 11, 2009

GCD Dispatch Sources

Mike Ash:

This also has a nice benefit over the standard Unix way of doing things in that there’s no need to write a loop. With typical calls to read, you always have to be wary because it can return less data than requested, and can also suffer from transient “errors” like EINTR (interrupted system call). With GCD, you can just bail out in those cases and not do anything. If you leave unread data on the file descriptor, GCD will just invoke your handler a second time.

Grand Central is now open source. This is good, although I don’t think it’s as big a deal as some people are saying. Personally, I think the blocks technology is more interesting and important.

Thursday, September 10, 2009

GCD and Blocking Kernel Call

Tim Wood:

On the whole, this seems great, but in specific cases it may bite developers that don’t expect it. In my real code, I’m processing a couple thousand compressed files. At the top of each block, I was opening one compressed file and reading its contents. These I/O calls are blocking and would let GCD spin up more operations. Having 1000 threads all fire up and allocate all the memory in the system wedged my machine for a while and confused me since I thought GCD was supposed to handle this.

I thought so, too. GCD is in a better position than the application to know and manage global I/O.

Monday, September 7, 2009

Two-Line URLs Broken in Snow Leopard’s Preview

Adam Engst:

We assume that the problem is that Preview is attempting to treat text that looks like a URL as a link, but it is unfortunately doing so in such a way that it ignores the actual PDF link box that sits on top of the text.

Saturday, September 5, 2009

Things Removed in Snow Leopard

Jesper has a list.

Flash and Snow Leopard

Jeff Johnson:

Snow Leopard build 10A432 was seeded to eligible ADC members on August 12. If Apple had already declared build 10A432 the GM before seeding it to developers for testing, that would be completely irresponsible (though sadly, not unprecedented). In any case, if the 10A432 seed had turned up a show-stopping bug, Apple could have un-declared it GM. Is allowing an attacker to take control of a system via a web browser not a show-stopper?

Friday, September 4, 2009

Mac OS X 10.6 Review

John Siracusa reviews Snow Leopard.

SuperDuper and Snow Leopard

Dave Nanian:

In other words, considering the issue was basically one of performance, we thought it was better to get the update out day-and-date with this known issue, than hold it back for the week or so it would take to investigate and fix (and then however long it took to test, based on what we had to change).

This is what I like to see for software that I depend on—both the openness and the fact that they shipped something reliable (if imperfect) on the day I needed it. In the doghouse: QuickBooks. I can’t remember the last time an important application was so crashy as to be unusable. It’s not even possible to register/activate QuickBooks on Snow Leopard; apparently Intuit didn’t know that the Java bridge was slated for removal.

Wednesday, September 2, 2009

Creator Codes in Snow Leopard

Lukas Mathis:

I’m not sure whether this is a bug or an intentional «feature», but Snow Leopard has broken «Creator code» file associations. In Leopard and earlier versions of Mac OS X, applications could optionally «own» their files even if the files’ types were associated with a different application; i.e. you could associate RTF files to TextEdit, but if you created an RTF file in Word, that file would continue to open in Word.

It’s a shame, but I can’t say this is surprising.

Update (2009-09-07): Matt Neuburg: Snow Leopard Snubs Document Creator Codes. Some of the commenters seem to be stuck on the idea that supporting creator codes means less support for file extensions and therefore less interoperability. Supporting both seemed like a good compromise to me. Unless I’m missing something, Neuburg’s suggested workaround—changing the bindings manually using Get Info—is shocking laborious because it has to be done for each file separately. Perhaps someone will write a utility to set the 'usro' resource in bulk.

Tuesday, September 1, 2009

Selector Uniquing in the dyld Shared Cache

Greg Parker:

Snow Leopard’s dyld shared cache uniques Objective-C selectors, and Snow Leopard’s Objective-C runtime recognizes when the selectors in a shared library are already uniqued courtesy of the shared cache. About half of the runtime’s initialization time is eliminated, making warm app launch several tenths of a second faster. Typical memory savings is 200-500 KB per process, adding up to a few megabytes system-wide. When this optimization ships on the iPhone OS side, it’s estimated to save 1 MB on a 128 MB device. The iPhone performance team would pay any number of arms and legs for that kind of gain.

ATPM 15.09

The September issue of ATPM is out: