Fraser Speirs Cocoa and Photos

Flickr View All » Red Boat and Sky (via FlickrExport Touch)CloudscapeDock SparklesMac Pro Background SparklesMac Pro SparklesThe Road to GlencoeBeautiesSpreader
View Fraser Speirs's profile on LinkedIn  Add to Google

Posted
12 April 2008 @ 10pm

Tagged
Photos, Tech

7 Comments

Add:     

Keywording in Aperture

So, finally, I’ve drawn together my thoughts about keywording in Aperture. My problem with keywording has always been more about “how can I make it easy enough that I will actually do it?”, rather than “what should the keywords be?”. I’ll explain my personal taste for both, though.

I was inspired to look again at keywording because my father recently gave me a photo album assembled during the first few years of my life (roughly 1978-1983). It was more than a little awkward, though, when nobody could remember whether certain baby photos were my sister or myself. We ended up trying to fashion-date them from our parents’ clothes, which is always a little hit and miss.

It struck me then that we already rely on a lot of metadata that the cameras write into the image’s EXIF header for us. Even having the EXIF date for these images would have helped a lot with the genealogical forensics, but we can do so much better.

In Aperture, you have not only a hierarchical keyword structure, but also a list of arbitrary key-value pairs for every single image you shoot. This is insane power currently, I believe, hampered by what is a fairly weak interface to that power.

Anyway, again, I was looking for a way to lower the barrier to actually doing the keywording and I found it. The feature has existed in Aperture since 1.0 but the way it’s presented in the documentation really led me away from considering using it on a regular basis.

The feature is Aperture’s Keyword Controls in the control bar:

KeyowrdControls

I always read the documentation on this feature in a way that implied that setting up these Keyword Controls was tantamount to the construction of some kind of grand edifice which should stand for all time. I can’t explain why I thought of it that way, but I felt that creating a button set implied a permanence that I could never really get my head around.

It’s nonsense, of course. The main thing I’m here to tell you is that these button sets are throwaway items. You can make lots of them. You can have the same keyword in multiple different sets. You can make a set that you use for a day and then delete.

The magic — if that’s what it is — is that these button sets give keyboard shortcuts to your keywords. The first nine keywords in any set get the shortcuts Option-1 through Option-9, although the set of keywords can be arbitrarily large (I think). The second insight, that I think few people have noticed, is that you can cycle through these button groups using the shortcuts Comma and Period. This makes for really fast navigation through keyword groups.

A Working Example

I was playing at being James Duncan Davidson for the day and shooting the second day of the recent Scotland on Rails conference (Flickr Set). The day before the conference, I set up an empty project on my MacBook Air, which looked like this:

SoRProjectStructure

Everything in this structure is driven by the presence or absence of keywords. I made smart folders for each session, based on the keyword which was the speaker’s name. I chose to use the speaker’s name, rather than the number of the session or its title because the speaker’s name would be more useful as a Flickr tag in the future. Here’s the Query HUD for the keynote:

SessionSmartAlbum

It’s a little non-obvious to set these up because Aperture won’t show any keywords in the Query HUD until there’s an image in the project that bears that keyword. I believe this is new in Aperture 2 since, if I recall correctly, Aperture 1.x would show you every keyword in your database in every HUD. This is a generally good change, because it keeps the size of the HUD manageable. To work around this, I simply imported a dummy image and gave it every keyword that every Smart Album depended on, set up the albums and deleted the image. Once set, the keyword criteria stay set on the Smart Album even when all the images in the project are deleted.

The settings for the “+ No Keywords” album are also new in Aperture 2:

NoKeywordsSmartAlbum

This album is populated with all the images that have no keywords. When I import, this is where all the images start off. The first step is generally to decide whether they’re “general” images or specific to a particular session. I’ll Cmd-click or Shift-click to select all the general or specific images, apply the appropriate keyword and then deselect the images. In a few clicks, all my images are both keyworded and automatically sorted into their respective Smart Albums. That’s power.

There’s Always Flickr

The end result of this shoot was to get some good images onto Flickr. To that end, I created two more Smart Albums: one for images on Flickr and one for images that need uploaded. Here are the criteria for the ‘Flickr - Uploaded’ album:

FlickrSmartAlbum

The “Flickr-To Go” album is similar, except it states that the image should be rated 3* or greater and have an empty “Flickr ID” field. FlickrExport can fill in this field for you when it uploads an image (turn it on in preferences).

Other Ways to Use Keyword Controls

I make, use and delete a lot of keyword button sets. If I’m going on a trip, I’ll make a set with the names of places I expect to go. If I’m at an event, I’ll make a set with the people I expect to be shooting there. I have one for commonly-photographed family and another for friends. I have one for April’s friends. I have one for locations around Greenock and Glasgow.

You Know How to Keyword, Now What Do You Keyword?

You might know how to photograph, and have a great camera, but the enduring question is always what are you going to make pictures of? (Incidentally, that maxim is an incredible challenge. Keep it in mind, next time you get Gear Lust.) Similarly, these techniques are all great, but what are your keywords going to be?

Personally, I like to keep it simple: People, Places, Things and Events. I’m thinking that, in 20 years, I’m going to be much more interested in “who is this person?”, “where was this photo taken?”, “what is that?” and “why was I there?” than I will be in any particular note of the technique used. I mean, we have the EXIF data, so I can derive almost everything about the technique used from that information. Different kinds of photography will

I keyword places using a hierarchy like /Travel/{UK,Foreign/Continent}/Country{/Region}/City/Sub-location which produces such examples as:

  • /Travel/Foreign/USA/California/San Francisco/Golden Gate Bridge
  • /Travel/Foreign/USA/California/San Francisco/Yerba Buena Gardens
  • /Travel/Foreign/USA/California/Sacramento
  • /Travel/Foreign/Switzerland/Geneva/CERN
  • /Travel/Foreign/Greece/Athens/Acropolis
  • /Travel/UK/Scotland/Argyll/Isle of Mull/Craignure
  • /Travel/UK/Scotland/Glasgow/Byres Road

Names are much simpler: /People/{Family,Friends}/NameOfPerson. Events are keyworded thus: /Events/Event Type/Event Name/Participant Name. I find this keyword structure, along with my previously-blogged project organisation structure, helps me find anything I want to get back to with relative ease.


Posted
10 April 2008 @ 10pm

Tagged
Tech

6 Comments

Add:     

MacBook Air, one month on

Someone emailed recently asking for an update on life with the MacBook Air. What can I say? It’s completely fantastic. Every time I pick it up, put it in my bag and walk to work, I know I made a good choice.

I used the MBA recently when I was shooting the second day of Scotland on Rails. Aperture 2.1 performed flawlessly on it: downloading cards was perfectly fast and moving through the UI was fine. I turned off preview generation on import, and that kept everything moving nicely.

I’ve been building software on it, surfing the web and RSS, doing email, light Aperture work, several apps open at once, no real problem.

There’s really nothing more I can add that Daivid Pogue hasn’t already said:

every now and then, a couple of messages come in that really irk me. These messages tell me how wrong I am about something I reviewed, which is fine — but they come from people who have *never even tried the product.*

It was that way with the iPhone, in the time after it was announced but before it was available. “This will be the biggest flop since the Cube,” went the critics. “No removable battery? Nobody will touch this thing.” Etc.

The blogs were full of this stuff.

As it turns out, they were massively, humiliatingly wrong. Four million iPhones were sold in the first 200 days. Its sales surpassed Treos, Windows Mobile phones — everybody but BlackBerry.

So what’s the lesson here? Simple enough: those vocal pre-release blogger-bashers are terrible predictors of a product’s success or failure.

All of this brings us to the MacBook Air. When it came to public pre-opinion, I knew I had another iPhone on my hands. Here it was, another Apple product with a stunning and sexy design, gorgeous software — and several missing standard features. (In the Air’s case, those features included a removable battery, an Ethernet jack, a FireWire jack and a built-in DVD drive.)

So confident was I that the spec-peepers would dump on this machine, I actually tried to pre-empt them in my review. I tried to explain that looks, size, shape, fit and finish actually matter, actually affect the pleasure you get from a machine. “But for anyone who shares Apple’s admiration for elegance,” I wrote, “the tradeoff is worth it. This laptop’s cool aluminum skin and smooth edges make it ridiculously satisfying to hold, carry, open and close. You can’t take your eyes or your hands off it.”

Needless to say, my tactic didn’t work. The feature counters blew right past my attempts to describe the differentness of this machine and dumped on it. “This will be the biggest flop since the Cube! No removable battery? Nobody will touch this thing!” Etc.

I have no idea what the Air’s sales are like, so I can’t yet say that the blogger-bashers were wrong again. I do know, however, that the Air has precisely the same effect on people (who actually *see it*) as the iPhone did: they’re awestruck. They want to hold it, to touch it

I don’t think I have ever agreed more fully with anything I’ve read on the internet. Exactly my experience.


Posted
26 March 2008 @ 12pm

Tagged
Tech

3 Comments

Add:     

McBarCamp, anyone?

So I had this crazy idea to host a BarCamp-style event in Scotland around Mac/iPhone development. A few bits and pieces clicked together, so I’ve put up a Google Docs survey to gather information about the level of interest in such an event.

To expand a little on the content of the form, the event would likely be in Greenock (Greenock is 30 minutes by train from Glasgow) or possibly Glasgow. There will be wifi. It would have to be after WWDC so that we can talk about the iPhone SDK without NDA paranoia. It might be one or two days depending on what people want. No spectators, only participants.

Let me know what you think. Feel free to comment or ask questions here, but please do go and complete the survey so that all the hard data is in one place.


Posted
21 March 2008 @ 8am

Tagged
Uncategorized

Comments Off

Add:     

Media Strategies for a MacBook Air

I recently had some correspondence with Blake Burris, who is himself considering the MacBook Air. Blake was asking about how I’m managing my iTunes and photo libraries on the Air’s limited disk space.

Here’s the substance of what I said, in the hope that it will be useful to others:

I’m a two-machine guy now. I have been for a while, but I’ve always looked on each machine as being equal, but for different purposes. With the Air, I’m moving more towards the Mac Pro being home base, and the Air being something I take with me but don’t depend on. In that sense it’s more like the iPhone: a portable copy of the data, with everything synced up back home.

My photo libraries haven’t fitted on a laptop drive for some time, so that hasn’t been a particular issue. All I use my laptop for is downloading photos into Aperture whilst travelling, which then get moved back to the Mac Pro when I get home. I don’t keep photos on the laptop at all: if I want to show pictures, I’ll pull up a Flickr slideshow.

I have always managed my iTunes on the laptop, though, and my home base/portable version model is slightly different here. I look at iTunes as a mixture of static and dynamic media. All the stuff you paid for (music, movies, TV) is static content that you, in principle, want to keep forever. Podcasts are dynamic content which likely get deleted after one or two listens and which you can always get back for free.

I use my iPhone primarily for video and podcasts and don’t keep music on it at all. I have all my static media on the Mac Pro and the Air’s iTunes library is purely for downloading Podcasts and syncing to the iPhone. I did this because I figured that I wouldn’t want to be away for a couple of days and not be able to move new podcasts to the iPhone. I can wait for the other stuff, although I could equally move a video onto the iPhone from the MacBook Air if I needed to whilst away from home.

To get video onto the iPhone, I connect it to the Mac Pro. The iPhone is set to “manually manage music and videos”, and I can then just drag over what I want. It is slightly annoying to give up the auto-syncing of the ‘newest unwatched’ TV shows, but it’s not a major pain.

If I do want to take my entire library with me, I use my old 80GB 5G iPod. The beauty of this is that you can play music and movies off an iPod on the MacBook Air screen, although I think I have noticed that doing so does not update the “New/Not New” status of TV shows in the iPhone’s internal database. If I ever need to get an audio file off the iPod, well, PodWorks is never far away.


Posted
19 March 2008 @ 12pm

Tagged
Uncategorized

Comments Off

Add:     

John Redwood MP: Parliament Finally Detaches From Reality

The economics get more depressing every day. The government handling, even more so. As John Redwood MP comments:

Large sums of money were made available to the banks to ease them through the persistent credit crunch and liquidity crisis. The US were tidying up the loose ends of the rescue of America’s fifth largest investment bank. The dollar and the pound were in freefall, bank shares crashed, and the Chinese market fell as the authorities there threatened higher interest rates to combat inflation.

Inside Parliament the government had decided the whole day could be given over to debating climate change again.


Posted
18 March 2008 @ 9pm

Tagged
Tech

7 Comments

Add:     

MacBook Air Out of the Box

My wife told me that a “small package” was waiting for me at home. That could mean only one thing: the MacBook Air that I ordered on February 28th. I’ve purchased Revision-A Apple products before, but I’ve never, ever had to wait so long to receive one as I’ve waited for this machine.

I got home to find a small, squarish box which was clearly not big enough to contain a laptop of any size. The attached packing slip detailed five items, one of which was the Air, but only four items were in the box. The TNT driver had loaded two boxes at the depot and only delivered one, but the one he kept was the laptop itself! I was about to be really disappointed when my neighbour came over with a box that looked about the right size. Fortunately, the driver had realised his mistake and backtracked to drop off the second box after Carolyn had left. Relief!

My Order

So, what did I get? One custom configured MacBook Air: 1.8GHz with an 80GB hard drive. I also ordered the Ethernet adapter, since I use ethernet a fair bit at work, a second power brick and AppleCare.

Out of the Box

There’s no denying that Apple made the MacBook Air box a lovely thing to open. It’s more like the iPhone box than any previous Mac laptop box. As factory-installed, the Air’s 80GB drive had 17.5GB of material on it, including a full iLife install. For me, that was a bit more than I wanted to devote to the system, so I decided to try a Remote Disc reinstall.

Remote Disc Installation

I thought it was important to try this new technique at least once before actual data was at stake, so I decided to reinstall the Air over USB Ethernet from my Mac Pro. I had been led to expect disastrously long installation times for this, but I was pleasantly surprised. Here’s the timing:

  • 1830: Power on
  • 1831 (+0h1m): Finds Mac Pro remote install disc
  • 1834 (+0h4m): Installer booted
  • 1843: Clicked ‘Install’ on a nothing-but-required-printer-drivers (HP) installation.
  • 1902 (+0h32m): Green Tick shows up in Installer.

This was with a direct cable connection over the USB Ethernet adapter into a Mac Pro. I’m sure it would be significantly slower over wireless, particularly since I don’t have an 802.11n network.Post-installation, I’ve used 9.39GB of the 80GB disk, a saving of nearly 10GB or exactly 10% of the nominal disk capacity.

App Installation over Wireless

The Air installer discs shipped with 10.5.1, so I had some updating to do. Once that was over, the next step was to install the three packages I can’t download: iLife (just iPhoto), Remote Desktop and Office 2008. The process of using Remote Disc was flawless, once I figured out that I had to enable the “DVD or CD Sharing” service in Sharing preferences on the Mac Pro. I had sort of assumed that would be permanently enabled, having just done a remote OS installation.

Here are some timings over my bog-standard Netgear 802.11b/g wireless:

  • iLife (iPhoto only, ~500MB): 5 minutes from ‘Install’ button to green tick.
  • Remote Desktop 3 (70MB): 1 minute.
  • Aperture 2 (220MB): 3 minutes.
  • iWork (full install, ~750MB): 7 minutes whilst also running the big software update in the background.
  • Office 2008 (Word, Excel, English proofing tools, Office fonts: 815MB): 6 minutes.

So now, with my core apps loaded but no data, I’m using 12.7GB of disk. I skipped Photoshop CS3 for now, but might add it later if I find I miss it.

It’s also worth noting that, whilst configuring the install, the performance of Installer.app is indistinguishable from a local disc except for a slight UI pause when loading what I guess are the preflight scripts from the package. Cutely, if you press the Eject key on the MacBook Air, it unmounts the Remote Disc.

As far as I can see, Remote Disc is a perfectly adequate technology for the purpose of installing software. It is barely distinguishable from a built-in laptop DVD drive. Partly, I suspect, that’s due to the Mac Pro’s faster optical drive. I find it difficult to believe that many Air purchasers are going to have a need to reinstall such large packages so often that Remote Disc will be an intolerable solution for them. I can’t see a USB Superdrive in my immediate future, despite its pleasing aesthetics. I can, however, see myself getting a spare USB Ethernet adapter for my bag.

Hardware Impressions

It’s light. Really light. But then that’s the part you probably knew already. People have also mentioned the rigidity of the case. I totally agree: it feels more like an iPhone or iPod than a MacBook Pro.

The first two times I tried to boot the MacBook Air, I thought it was dead because it made none of the whizzing-clunking sounds that the MacBook Pro DVD drives make on startup, and the hard drive is silent.

The trackpad is extremely large indeed - far larger than that on the outgoing 17″ MacBook Pro - but the trackpad button is very skinny and isn’t clicky enough for my taste.

I have not been the greatest fan of glossy displays in the past, but the MacBook Air’s screen seems to be a significant improvement on that fitted to early generations of the MacBook. Those first glossy screens had a terribly narrow angle of view in which the colour remained consistent. Slight movements of your head would produce wild and dramatic colour shifts, to the point where it was almost useless for any application that required even mild correctness about colour and shade.

Let’s hear it for LED backlighting. I was initially sceptical about exactly how much better LEDs were for backlights, but I’m a total convert. It’s brighter and whiter than the MacBook Pro’s fluorescent backlight, and it also seems to have a greater range of adjustments. The darkest setting is darker than the Pro’s and the brightest setting is much, much brighter.

Having just hammered the hard drive continuously for two and a half hours, the fans are blowing pretty hard right now. The machine is warm underneath at the back-left corner where the hard drive lives, but the top case is evenly cool to the touch all around. Much cooler than the hard drive area on my MacBook Pro, on which I’ve done nothing but type this post. In the time it took me to write this paragraph, the fans have faded almost to idle.

Multi-Touch and Aperture

The multi-touch trackpad is nice, but I’ll need to try and remember it’s there. I haven’t seen many people comment on this, so I’ll note that pinch-to-zoom and the “wiki wiki wiki like your favourite DJ” gestures do work in Aperture, thusly:

  • Pinch: works in the browser to scale the thumbnails up and down. Does not work in the viewer or in fullscreen to switch between fit-to-screen and 100%, sadly.
  • Three-finger-swipe: works everywhere the left/right arrows work to move forward and backward through photos.
  • Two-finger-rotate: doesn’t work anywhere. It would be lovely, though, if it could be used to control the Straighten adjustment!

So that’s the story of setting up the MacBook Air. Another very, very well-done experience from Apple. Anything else you want to know?

[Update: The Late-Breaking News About Aperture 2 document details all the multi-touch gestures you can use with Aperture 2.  Also, it turns out that you actually can use the rotate gesture for the Straighten adjustment - you just have to add it to the set of adjustments first. Sweet!] 


Posted
16 March 2008 @ 11am

Tagged
Photos, Tech

7 Comments

Add:     

Aperture 2 In Use

Duncan Davidson posted his impressions of using Aperture 2 in serious production work. I also recently just completed my first shoot since Aperture 2 was released. I’ve been so crazy-busy on FlickrExport 3 and iPhone stuff that I’ve hardly picked up the camera since February.

I was doing some stage photography for our Passion Play and I decided to take my MacBook Pro to download the cards as I went. A friend asked me why I ended up with so many shots (over 1500) from this one evening. The answer is simple: in such low light, you’re working at the very edge of the capabilities of the equipment and the probability of getting it sharp in a single frame is practically zero. I like to shoot stage with little bursts of three to five shots, which usually yields one or two good frames per burst. Even if you get them all sharp, there’s always the chance that someone’s eyes have closed, or a hand has covered someone’s face.

All that said, I am so ready to have a camera that has ISO 6400 or beyond :-)
So, Aperture. My main concern was working fast, since I didn’t have anyone to empty the cards for me. I wanted the machine to ingest the images and move on, so disabled the automatic generation of previews and asked Aperture to use the embedded JPEG preview from the camera (in Preferences > Previews tab). Then I stuck Aperture on Quick Preview mode and got to work.

The process of import went very well. Unfortunately, I managed to screw up at least once, possibly twice by pulling the cards too quickly after asking Aperture to erase them. The result was some images left on the cards, which I accidentally imported again as duplicates. I had forgotten where the “Don’t Import Duplicates” setting was and assumed it was on. I thought it was a preference that I had already set, but it’s actually a checkbox on the import panel. Lesson learned. It was easily enough fixed by creating Smart Albums based on Import Session (thanks to Pat Berry for the idea).

The other slight wrinkle was that it was difficult to tell when Aperture had finished erasing a card. In Aperture 1.5, the project would continue to show the import progress spinner until the card was erased and ejected. As soon as you saw the project shoebox icon, you knew that the card could be yanked. I need to do a little more testing, because now I’m not sure how you know with Aperture 2 - it shows the shoebox icon as soon as it starts erasing the card, not when it finishes. That was really the reason why I ended up with partially-erased cards.

After that, the process was smooth as silk. I did a very quick reject-or-one-star pass just using these previews. I like to shoot using the Monochrome picture style on my 30D. This applies a monochrome conversion to the embedded JPEG preview, which you see on the camera’s LCD. The actual RAW data is still colour, though, so you don’t lose anything. What I found was that, with Aperture using the embedded preview, the image would be initially rendered in colour, then snap to black and white. This was a bit distracting for the rating step. My guess here is that Aperture was first rendering a blow-up of the thumbnail that it generated from the RAW data (in full colour), then almost immediately rendering the image’s embedded B&W preview on top.

The only other problem was that the embedded JPEGs from the camera are fairly low-resolution and don’t look great at full-screen on a 17″ laptop. In particular, for those I shot in colour, there was significant apparent posterisation of the colours due, I suppose, to the compression applied. That’s not unexpected, so the next step was to have Aperture generate proper previews for each non-reject image. That took a while, but made Quick Preview mode even more useful for the finer stages of rating.

Apart from those small wrinkles, Aperture 2 ran brilliantly. Scrolling through all those thumbnails and previews was as smooth as silk.


Posted
12 March 2008 @ 12pm

Tagged
Tech

4 Comments

Add:     

Featured Comment: InfoWeek’s Response

I thought this one was too important to leave in the comments on my piece about Alexander Wolfe’s cynical and lazy blogging on the iPhone SDK.

David Dugan took the trouble to make a complaint to InfoWeek about the article. The full response is in his comment at the above link, but here’s a little dissection:

Alex actually runs one of the fastest growing Blogs inside InformationWeek, and yes it grows fast based on the juicy headlines, creating some contention and the other things that make a Blog good.

Translation: telling lies about subjects which people care about is good for business.

Comment: This is the downside of the move to ‘free’. When everyone’s competing for advertising eyeballs on content that they used to charge for. It’s difficult to believe that this dynamic has zero impact on the content itself. Look at what Information Week are explicitly saying: our free-content properties are deliberately made more sensational and argumentative than the content that is paid for.

we definitely take more liberty in blogging than we do in a major feature or a news story–there is a difference between these things in our approach.

Translation: accuracy doesn’t matter unless it’s on a slice of dead tree.

Comment: It’s hard to think of a phrase more euphemistic than “take more liberty”. Sentences like “we care less about accuracy in blogging” or “we don’t mind incorrect statements in our blogs” or “any amount of garbage is just fine with us on the blog pages” sounds a whole lot less noble, doesn’t it?

Everyone on this e-mail does not want to lose you as a user of our site, nor do we consider it ‘click whoring’ to write content that gets people riled up–that is the beauty of blogging and that is the beauty of people like you who care enough to send this sort of note.

Translation: We don’t actually know why people read blogs but we read John C. Dvorak once and copied him.

Comment: Is getting people riled up really “the beauty of blogging”? I have a much better definition of the “beauty of blogging”: getting real-world experience from real people who have deep knowledge of their subject and are free to write what they want.

Come to think of it, do tech journalists satisfy any of those four conditions? I’ll grant - in some cases - that they are real people. However, Wolfe’s piece showed that his experience was most certainly not real-world, as he had not even downloaded the SDK. His knowledge on the subject is somewhere between shallow and non-existant, and he is clearly under orders to be sensational in order to grow his readership.

In a world in which Craig Hockenberry can blog about his direct experience in developing for the iPhone, why do I need a journalist to mediate that information for me?

I would like to start a web service like Gravatar where you can state your competencies and those competencies are linked to from every article, post and comment you make on the web. Simply writing under a once-respectable masthead is no longer enough. In fact, today, it’s probably a good indicator that one should lower one’s expectations.


Posted
11 March 2008 @ 10am

Tagged
Programming, Tech

Comments Off

Add:     

Posted
10 March 2008 @ 11am

Tagged
Business, Tech

47 Comments

Add:     

Bampot of the Week: Alexander Wolfe

John Gruber has his occasional Jackass Of The Week award, for which Rob Enderle seems to be in line for a lifetime achievement award. I needed a more Scottish equivalent, so here is my Bampot1 of the week: Information Week’s Alexander Wolfe, for his overblown and incorrect piece about the iPhone SDK entitled “iPhone SDK Developers Angry At Apple’s Tight Control”.

Let’s take the piece apart, Gruber-style:

Apple’s mindset is apparent from the get-go. They’ve gone non-disclosure crazy with the iPhone SDK, though admittedly no more nuts than usual. Here, what they’re doing is keeping the all the stuff people want to know under much tighter wraps than they need to. For example, you can download the iPhone SDK for free, but you have to pony up $99 to get at the really good documentation, sample code, and developers’ videos.

This is simply not correct. Firstly, the NDA is a standard thing for pre-release software from Apple and many other companies. The iPhone NDA is little different to others I’ve seen but to discuss the contents of the NDA any further would be to break its terms.

Wolfe makes a factual error in stating that you have to pay $99 to get the documentation and sample code: you get that when you download the SDK. The documentation, samples and videos are available for the price of registering for a free ADC Online developer account. The videos are available via Apple’s ADC on iTunes service.

OK, that’s relatively minor. Pay the $99 and be done with it. I think the bigger problem for developers is going to be death by a thousand cuts. By this, I mean that Apple never seems to put all its cards on the table at once. For example, on Sunday Phonemag reported that the SDK contains a tidbit noting that the iPhone won’t run more than one app at a time, so when users switch applications, whatever is running in the background will get killed.

If Apple “never seems to put all its cards on the table at once”, how come we know about the no-background-threads limitation? If it were a hidden limitation, we would only learn about it when someone tried to write a background app and it failed to work. Documenting limitations isn’t the same thing as hiding them.

From Apple’s standpoint, this is done to maintain decent performance. However, developers are likely to see it as just another screwing.

If Apple had promised me that I would be able to write supported background applications with the SDK then, yes, I would feel screwed. However, to my knowledge, no such promise was made. Having used Windows Mobile devices that do allow process to live on in the background, I can only hope that Apple enforces this limitation as rigidly as possible. Nothing else makes sense for the user in a resource-constrained environment like a phone.

The trick for we developers is to make it look like the app was running all along.

Me, I want to know what’s supposed to happen if you’re in the middle of something important and your iPhone rings. Does your app blow up?

Yes, the only possible explanation for what happens when another app is launched is that the iPhone deliberately crashes the one you’re working in. For “blow up”, let’s substitute “get suspended, saving its data for later resumption” and then we can answer yes.

The same thing will happen to your app when the user hits the Home button. Does Wolfe think that the Home button will be made into a “crash my app” button in iPhone 2.0?

There’s lots of complaining about the fact that all iPhone apps have to be approved by Apple, will be sold by Apple, and Apple will get a 30 percent cut of all sales. On the other hand, John Siracusa at Ars Technica says that “developers see dollar signs” in iPhone apps, so presumably they’ll deal with the restrictions.

Great argumentation: “lots” of unlinked, unattributed ‘complaints’ and the one attributed remark actually refutes the point of the paragraph.

Turns out, though, that developers are limited in what iPhone functions that can tap for the apps they’re building, according to Adam Houghton’s post on his eponymous blog. Houghton characterizes as a “glaring” omission his discovery that developers can’t access calendar appointments, music and videos from the phone’s iPod app, nor phone and SMS functionality.

So there’s missing functionality. The SDK is beta. File an enhancement request.

How is Apple’s rule that only apps it has signed can run on the iPhone going to play when it comes to corporate applications? One commenter on Slashdot …

…and that’s the point at which you have to laugh and close the tab.

This is a lot to digest, and quite frankly most developers will suck it all up because, hey, it’s the iPhone.

I think, right now, “most” developers serious about the iPhone are still reading and reading and writing test apps and figuring things out. Despite it being a lot to digest, that’s apparently no reason for Wolfe to hold off on filing an ill-informed attack piece on an SDK he clearly has not even downloaded and investigated. If he had done so, Wolfe would know that you don’t have to pay $99 to get the documentation, sample code or videos.

Wolfe seems to have totally missed the point about the SDK. He mostly seeks to criticise the no-background limitation, but the majority of unresolved questions in all of this are about the App Store. Here are my questions:

  • How do we do a public beta release without charging for it? I never charge users for beta releases.
  • Will developers be able to generate coupon codes for free downloads? This is very important for promotional purposes.
  • How will the App Store handle discounted upgrades to new versions? Upgrades keep the lights on in year 3.
  • How and under what circumstances might Apple revoke an application’s right to run? Does the customer get a refund, and from whom?
  • How will it handle demo versions? Trying before buying is important. Seems like this would be easy to do with FairPlay embedded in the applications.

For me, those are the real questions. The technology is great (which, given the NDA, is about as much as any developer should be saying about it right now) and all the known unknowns are about the business deal.

[Update: 1. Bampot (Scotland, slang, pejorative) idiot; an objectionable and foolish person.]


← Before