Archive for November 2004

Tuesday, November 30, 2004

GraphicConverter 5.4

GraphicConverter can now re-compress multi-page TIFF files. It also does a good job of converting multi-page PDFs to TIFF format. This will make it much easier for me to archive my paper documents.

Tuesday, November 23, 2004

Source Lists and Drawers

Deeje Cooley:

Here’s another UI pet-peeve entry: source lists don’t belong in drawers.…The problem here is that the mailbox (source) list is not secondary to the usability of the product, unless you have only one inbox, no trash, draft or sent boxes, and zero folders! For most users, the source list in this drawer need to be visible all the time, because they’re integral to the workflow of using mail.

Friday, November 19, 2004

Cocoa Bindings

Brent Simmons just started using Cocoa Bindings:

It was, I confess, a reaction to that terrible feeling you get when you’re faced with creating yet another NSTableView data source and delegate. I just couldn’t face another objectValueForTableColumn:blah:blah:whatever:.

and he likes them. I actually had the opposite reaction a few days ago. I was excited to use bindings, as I had already made the decision that the application would require Panther. I love the idea of bindings. And, indeed, bindings made it very easy to implement the basic functionality for the table. No datasource methods! No need to sort! Automatic updates! But the last 20% looked daunting. I needed typehead, editing and insertion validation that depended on objects outside of the row, control over when editing and deletion should be enabled, standard keyboard shortcuts that aren’t implemented by the framework, etc.

I started mapping out the subclasses I would need—you have to subclass to even know what the view objects are bound to—and how they would be hooked together, and decided that I could probably get it to do what I wanted to do, but that it just wasn’t worth it. There’s no sense in fighting the framework. Sure it’s kind of silly that I have to write -numberOfRowsInTableView: yet again, but it’s also the simplest method in my class so it’s not a big deal if the framework can’t handle it automatically.

Another case where I ended up not using bindings was in a pop-up menu that needed to be populated from an array, but that also needed a few extra menu items. Bindings don’t seem to have been designed to handle that.

This is not to say that I don’t like bindings or that I won’t use them. Like -takeStringValueFrom:, they make for a great demo, and sometimes they do exactly what you want (most likely for uneditable views). But they’re not as flexible as other means and are not always the right solution. As I write new code, I will keep looking for places where it looks like bindings will help, but I have no desire to convert my old code to use them. Aside from the extra work, I am convinced that in some cases it would make the code harder to understand and slower.

A final point: it’s not bindings or nothing. Developers can build their own helper objects that work with the standard datasource and delegate methods. These can provide some of the convenience of using bindings, but with easier customizability and more room to grow.

Wednesday, November 17, 2004


Kirk McElhearn:

The idea behind the drawer is both interesting and attractive: it is an optional element that contains additional information, allowing users the choice of whether they want to display this information. But in practice it is an annoyance, since it neither functions correctly nor does it display as it should.

Monday, November 15, 2004

SpamSieve 2.2.2

SpamSieve Icon SpamSieve 2.2.2 adds support for Growl notifications, opens up some customizability for Apple Mail and Entourage users that was previously only available to AppleScripters, and includes the usual round of accuracy improvements, enhancements, and bug fixes.

Saturday, November 13, 2004

Securing FireWire

Jonathan Rentzsch:

The idea is simple: FireWire provides direct memory access. So I can plug in my PowerBook into an Xserve, and arbitrarily read and write to all of the Xserve’s RAM, sans any logical protection.…It took a couple of years, but the security community community eventually made this a little more high-profile. Their hook, of course, was the iPod. “Use an iPod to 0wn an Xserve” the cry went. Everything’s sexier if you can tie it to the iPod.

Friday, November 12, 2004

The True Story of Audion

Panic discontinues Audion, and Cabel Sasser relates the product’s history. It’s a great story.

Jobs wanted to know how big we were, and how long we’ve been doing this. He wanted to know a few more things that I can’t even really remember. I remember he asked, “Do you have any other ideas for apps you want to work on?” I replied, genuinely, “Well, we’ve got an idea for a digital photo management program…” and he replied with a simple, “Yeah. Don’t do that one.” Everyone in the room laughed but I had no idea why—remember, my head was still exploding—so Steven Frank had to explain to me that he meant, basically, it was already being made and, of course, it would be called iPhoto. Oh. I get it now.

(via Steven Frank)

Thursday, November 11, 2004

AppleScript: A Comprehensive Guide to Scripting and Automation on OS X

Hanaan Rosenthal has written a book about AppleScript:

Another book about AppleScript? No, not really; this is the book about AppleScript. There are enough books that either summarize the language or just touch on the basics; this one is written for real people who need to use AppleScript to get real things done.
This book starts from the scripter’s point of view. It is organized based on the way the scripter uses the language, and pulls together all aspects of the language that pertain to that subject.

My favorite AppleScript book is AppleScript: The Definitive Guide. It’s kind of like the Think Unix of AppleScript: it’s clear, concise, and gets you to think about the language in the right way. It doesn’t teach you how to do many specific things with AppleScript, but it gives you the proper foundation to solve new problems on your own.

But every cerebral book could use a good cookbook (e.g. Unix Power Tools) as a companion. I haven’t read it yet, but with 888 pages full of examples, perhaps that’s what Rosenthal’s book tries to be.

Monday, November 8, 2004

Delicious Library

Comments on Delicious Library:

Tuesday, November 2, 2004

ATPM 10.11

The November issue of ATPM includes Jon Allen Boone’s switching saga.


John Gruber:

Icons in the Dock are a unique breed of proxies. When you drag them, they are not direct representations of the items themselves. But neither are they aliases, which is what they should be — and which is how app proxies are handled in third-party “dock” utilities such as DragThing.

Monday, November 1, 2004


Niall Kennedy has audio of the panel discussion about the Mac software business, at the recent O’Reilly conference (via Brent Simmons).

This video shows Marc Feeley presenting the main issues in compiling Scheme to C (via Lambda).