Final Cut Pro X Sneak Peek

Apple recently gave a sneak peek to some very lucky folks at NAB of the upcoming release of Final Cut Pro, now dubbed Final Cut Pro X. The "X" seems appropriate as it looks like Final Cut has finally made it into the world of modern applications written for a mature, modern and cool-as-hell Operating System.

Which is to say that FCP will finally be able to do all those things like threading and taking advantage of multiple cores, using as much memory as you've got, background rendering and exporting, and simultaneous ingestion and editing.

Image Via The Loop

Essentially, Final Cut Pro X is a complete, ground-up rewrite of the app, as well as rethinking of what a non-linear digital video editing application can and should be. Much like they did with iMovie — and likely drawing from many of its lessons — Apple has sought once again to redefine how we approach video editing. In fact, FCPX even looks like a mashup of the elder FCP and iMovie. It also looks to me like they've got a winner.

In addition to finally leveraging core OS components, the new FCP both removes the annoyances of yesteryear — things like the inability to use the application when you're performing an export (God, that was frustrating!) — and adds forward-thinking improvements like the addition of metadata for faces, places and tags, as well as a far better ability to deal with today's complex CODECs and cameras. It's very cool and makes me wish I still did video. Frankly, despite the fact that these days I am not making nor teaching video, I may buy Final Cut Pro X anyway, just to play with it. Yeah, it looks that cool.

It's also fairly reasonably priced at $299 (no more Final Cut Express, apparently), and available from, of all places, the Mac App Store. While I'm not quite yet a fan of the MAS, I am kind of excited at the prospect of being able to get FCPX on a whim with nothing more than a credit card and an Internet connection.

At any rate, even though I'm no longer a video guy, I'm so very happy to see one of my all-time favorite applications, Final Cut Pro, finally, after years of neglect, get the upgrade it so richly deserves. The actual video guys must be so psyched! Lucky bastards!

Third Time's a Charm

Another Xcode update, another bad App Store experience. This one was the best so far, but still not perfect.

After the last update I pretty much just gave up and started keeping the Install Xcode.app in the /Applications folder where it's expected, despite the 4.5 gigs it takes up. So when I went to update to Xcode 4.0.2 I expected everything to just work. I ran the Updater from the App Store, which took about 20 minutes as the entire Install Xcode.app, we now know, must be downloaded and installed from scratch (which, to be fair, was how it always worked in the old days as well).

Once that completed I knew, from cold hard experience, that despite the App Store reporting that the update was complete, the Install Xcode.app still needed to run and update the actual Xcode components. I find it very sloppy that you are not instructed to do this. Or, hey, better yet, why doesn't Install Xcode.app just launch when the update in finished? That seems like the best way to go. Either way, some instruction here are really needed to make this work like an Apple product. Fortunately, I know the deal, so I ran Install Xcode.app, and this is what I got:

If you're following along at home you'll recognize this as the same message I got when I first bought and installed Xcode 4. Nice to see somethings never change. This is what the log said:

Apr 16 10:33:07 hassium installer[39689]: Free space on "SysApps": 9.96 GB (9962598400 bytes).

Apr 16 10:34:28 hassium installer[39689]: install:didFailWithError:Error Domain=PKInstallErrorDomain Code=110 UserInfo=0x10817b630 "An error occurred while extracting files from the package “OtherDevDocumentation.pkg”." Underlying Error=(Error Domain=NSPOSIXErrorDomain Code=2 UserInfo=0x106722570 "The operation couldn’t be completed. No such file or directory")

 

Apr 16 10:34:28 hassium installer[39689]: Install failed: The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.

Not particularly helpful. So I decided to hit that "Try Updating Again" button, see what happens. This time, at least, I get some useful error info:

Okay, so this is just like before. We've run out of space and I need to clear some off. I still think this is the wrong place to bring this up, or at least not the ideal place. But still, I know what to do.

And sure enough, once I've cleared some space up (by deleting /var/vm/sleepimage, btw) the update works fine and dandy and Install Xcode.app automatically launches my updated Xcode (oh! sure, now you auto-launch!).

So it looks like, for me and Xcode anyway, third time's a charm.

Oh, by the way, if you're looking for the plist editor that used to be included with the Developer Tools, it no longer exists as a standalone application. Instead, it's built right into Xcode itself (makes sense to me). So if you want to edit .plist files, you just open them in Xcode now. Simple enough.

But Wait... It Gets Worse

So after purchasing and downloading Xcode via the App Store only to discover I didn't have enough disk space to install the app, I came up with an acceptable, if less than ideal, workaround. I'm not terribly happy with the state of things, but hey, at least I was able to get things back to a working state.

Today Apple released an update to Xcode. And here we go again.

Let the Good Times Roll

First off, there appears to be no way to update the software from the application page:

Nor does it appear in the Updates section of my Mac App Store:

To install the update I had to go to the Purchased section:

Ah! There it is, and it appears to see my current install. But this is what I get when I click the UPDATE button:

Nice. More useless error messages. See, I am signed into the account I used to purchase Xcode. So this makes no sense whatsoever.

Fortunately, I'm a SysAdmin, and this sort of thing is our forte. I figure App Store is probably confused because I moved the original installer app off my main hard drive due to space constraints that were causing the original install to fail. Putting the Install Xcode.app back in to /Applications should do the trick, I reason.

Sure enough, doing so allows me to run the update from App Store. Now I get this:

Well, that's pretty ironic! Seems like that's the message I should have gotten the first time I attempted to install Xcode 4.0. I'll call this progress though, as it's the first error message I've seen that might make any sense to a normal user. Still, though, there's no indication of how to fix the problem. Just how much disk space I'll need is never specified. Not before I began the process, nor during the process. This is simply terrible UI, folks. Simply terrible!

So I decided that probably the best way to clear up the needed space was to completely delete the current Xcode 4.0 install. I'm pretty sure that no matter what you do, the Install Xcode.app is going to overwrite everything anyway, so I may as well delete it.

Unfortunately, this leaves me with the original problem with the Update. I get this thing again:

So now I'm in a catch-22: If I keep everything I need for the Updater — the Install Xcode.app and the entire Developer folder — I don't have enough space to complete the update. But if I remove any of these items, the App Store isn't able to perform the Update because it doesn't seem to recognize the app as being fully installed (despite the fact that it sees it on the product page as installed) or as having been installed by me.

The first thing I tried was using a symlink pointing to the Install Xcode.app on another drive to clear some disk space. No dice. The actual Install Xcode.app needs to be in /Applications.

Next, I tried deleting just a portion of the Developer install, particularly the folder /Developer/Platforms/iPhoneOS.platform, which is just under 4GB. And now we're back to the "sign in to the account" message again. I also moved this folder and tried using a symlink to it as well, with the same result.

Next I tried removing the Install Xcode.app payload, a hidden folder that lives inside the app that's full of PKG bundles. Also no go.

It looks like the only way to update Xcode is to actually have Install Xcode.app and the Developer folder in their expected locations, and then, if you're short on disk space, to find several GBs of non-Xcode files — how many GBs I can only speculate, but I'll guess around 4 GBs (to give me a total of 10 GBs free) — to temporarily remove while I complete the update. Then, once the update is complete, I should be able to remove the Install Xcode.app (or move it to a backup disk) and put back the temporarily deleted files. Fun times!

Okay! So, after clearing up some space, the update still doesn't work! Argh! I am STILL getting the "updates for other accounts" message.

I'm at a complete loss at this point. And what do we do when we're at a complete loss, kids? That's right: Time to reboot.

Reboot to the Rescue

After rebooting and opening the App Store, and signing in to my account, here's what I see in the Updates screen:

App Store now sees my Xcode install and recognizes it as something it can update. This looks very promising. And this is what I see when I hit the UPDATE button:

Ahhh! Sweet blessed mercy! At last! It's working!

But wait… After the 20 minute "Update" process completes, App Store says my app is updated:

But Xcode begs to differ:

Turns out it's only the Install Xcode.app that's been updated:

So I run the Install Xcode.app, and this is what it tells me:

Un-fucking-believable.

Now What?

In theory, the best way for me to clear up disk space for an Xcode update is to delete the older version. I tried this before, however, and App Store got confused. But, ever the glutton for punishment, I simply must know if the Install Xcode.app will work under this scenario. It absolutely should. So I delete /Developer. Again. I rerun the updated Install Xcode.app and:

Seems to be working. It's about frickin' time.

The Deal

So here's the deal: Apple simply doesn't provide an accurate figure for how much disk space is required for installing Xcode. If you're wondering what the actual number is, I think I'm able to glean it from my experiments and am happy to provide this figure.

Also, there are a number of possible issues that can crop up if you happen to be low on disk space and are working around those constraints, so I'll provide some info on just what's going on under the hood with these updates.

Total Disk Space Required: 15 GBs

Itemized Disk Space Requirements:

  • Install Xcode.app: 4.5 GBs
  • Xcode and Related Developer Tools and Libraries: 10 GBs

What's Actually Happening During an Update:

  • When you update Xcode from the App Store, you're not actually updating Xcode. You're updating the Install Xcode.app.
  • You must have enough disk space at update time to accommodate this update, about 4.5 GBs.
  • After running the App Store update, you must run the Install Xcode.app to actually update Xcode.
  • The Install Xcode.app does not actually update existing components, it instead wants to completely overwrite your current install of /Developer, and so will need the full 10 GBs of disk space that install requires.
  • At this point, however, if you want to clear some disk space, it's safe to delete /Developer.

Additional Possible Issues:

  • In order to update Xcode, bare minimum, App Store obviously wants to see that Xcode is installed under the active account.
  • If App Store is complaining about your install or your user account, I highly recommend a reboot of your system before proceeding. This will likely cause App Store to fully recognize the install and account info, particularly if you've been mucking around in any way, shape or form.
  • The easiest way to manage all this is to keep the Developer Tools where they're expected — in /Developer — and to keep the Install Xcode.app where it's expected — in /Applications. If you have the disk space, this should make everything work more smoothly.
  • There are workarounds for this, but as you can see, they're not necessarily pretty.

All in all, I'd call this a major failure for the App Store. I'll say again, the App Store is meant to simplify the application installation process, and is meant primarily for the installation of simple, drag-and-drop type apps. By breaking its own protocol and using the App Store to install a complex suite of applications and libraries, Apple is both setting a terrible example for other developers, and creating one of the worst user experiences I've had in a very long time.

Installing Xcode 4 From the App Store

I have to say, installing Xcode 4 from the Mac App Store was one of the worst software installation experiences I've ever had.

Thwarted Expectations

For starters, the big appeal to me of downloading and installing stuff from the App Store is that I don't have to manage it. All that management stuff is handled by the store itself. I make my purchase and the app installs correctly and in the proper spot. Not so with the Xcode install.

In fact, once you've clicked on the buy button in the store, had the $5 clams removed from your account and waited the half hour it takes for the 4.5 GB install to do its thing in your Dock, what you end up with is not Xcode installed on your system. No, instead what you get is an application called "Install Xcode," which is essentially just a wrapper for the old-style installer you used to get for free.

Buying from the App Store in this case doesn't seem to manage anything except Apple taking my $5 bucks, which was never a problem before because it was free. But wait, it gets worse.

Install Xcode.app

So I run this installer app — this Install Xcode.app — and it's going okay. The inteface has the new Lion-style buttons and animations, which is at least entertaining, as well as usual stuff, license agreements and the like. Oddly, it even discovers my old install and tells me that it's going to rename it — not upgrade it, rename it — to Developer-old. No choice here, that's just what it's going to do, just so ya know.

But then it fails, and not exactly gracefully. No, it fails ugly.

Um… What now? Consult /var/log huh? This is what I paid $5 bucks for? This is what you wrote an installer app for? Crappy error reporting? So you could tell me to "consult /var/log/install.log"? Not even open Console, but consult a log file in an invisible folder? Really? You think Joe Average App Store User will have any freaking idea what this means?

And isn't this just the sort of thing the App Store is supposed to prevent?

Wherefore Failure?

So I open the lo file and this is what it says:

Mar 10 15:02:38 hassium runner[557]: Administrator authorization granted.

Mar 10 15:02:39 hassium installer[541]: Will use PK session

Mar 10 15:02:39 hassium installer[541]: Starting installation:

Mar 10 15:02:39 hassium installer[541]: Configuring volume "SysApps"

Mar 10 15:02:39 hassium installer[541]: Preparing disk for local booted install.

Mar 10 15:02:39 hassium installer[541]: Free space on "SysApps": 8.51 GB (8505917440 bytes).

Mar 10 15:02:39 hassium installer[541]: Create temporary directory "/var/folders/zz/zzzivhrRnAmviuee+++++++++++/-Tmp-//Install.541PaUH12"

Mar 10 15:02:39 hassium installer[541]: IFPKInstallElement (40 packages)

Mar 10 15:02:39 hassium installer[541]: Failed install preflight: Error Domain=NSCocoaErrorDomain Code=640 UserInfo=0x103555a90 "You can’t save the file “Developer” because the volume “SysApps” is out of space."

Mar 10 15:02:39 hassium installer[541]: Install failed: The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.

Yup, you guessed it. Out of disk space. Now, there's a whole list of fucked-up here, so let me just take you through it.

  1. The Xcode Installer application failed because of a lack of disk space, but somehow can't just say that.
  2. The traditional, old-style (and, ahem, free) installers will simply check disk space during preflight and tell you if you don't have enough space right there in the installer, but this custom app that I paid for cannot.
  3. Nowhere on the App Store does it say that you will need 15 GBs — yes, fifteen or more gigabytes, if you count the Install Xcode app and it's payload — of free disk space to install Xcode.
  4. The Install Xcode app itself is 4.5 GBs, which is a big part of the reason my disk is too full now for the install to complete.
  5. The traditional, old-style Xcode installer always used to offer customization options so you could preen certain Developer resources from the install to conserve space. Not everyone is an iPhone developer, for instance, and not installing the iOS SDK will actually save upwards of 8 GBs of disk space. But these options are no longer present in the custom-built Install Xcode app.

The fact is, there are at least a couple points at which this problem can and should have been detected. The most logical place would be at the app store itself — preferably before I ponied up the dough — where a simple declaration of disk space requirements would be exceptionally useful, particularly for an app and installer that together take up over 15 GBs of disk space. Instead we get this, which, if anything, seems to suggest that all you'll need is 4.24 GBs of space.

It also would be lovely if the Install Xcode app could tell me all the same useful stuff as a regular installer. But then they'd have to charge $10 bucks, and who's going to pay that for something they used to get for free.

The Fix

After all this I decided to see what was inside this Install Xcode app. I presumed that there would likely be a standard PKG or MPKG file that would allow me to install Xcode in the usual manner. Sure enough, that turned out to be the case.

Running that MPKG file, by the way, did, in fact, allow my to customize my install, had I wanted to go that route. (Though I would point out, it did not seem to want to upgrade my existing components as past installations of Xcode had. Take that info for what it's worth.)

Instead, however, I decided to see things through with the Install Xcode app. So I copied it to another drive partition and erased it from my /Applications folder, which freed up enough disk space to complete the full install and ran the Install Xcode app from the secondary partition (happily, the Mac App Store still recognizes that I have installed Xcode on this system).

This time, success.

Finally!

Conclusion

So that's my tale. In the case of Xcode, it seems clear to me that the only thing the App Store is really facilitating is payment, which was never an issue in the past because Xcode was blissfully free. Unfortunately, the overall experience of installing Xcode from the Mac App Store is more opaque and, if there is any sort of problem, far more difficult to fix. Given the lack of information provided by the App Store, it also seems far more likely that you will run into problems.

My conclusion: The Mac App Store is simply not well suited for complex application installs. It works great for drag-n-drop apps — self-contained applications that can simply be dropped into /Applications (or anywhere else for that matter). But for complex suites of applications, the Mac App Store doesn't simplify, it complicates. And that ain't right.

Finally, I don't mind that Apple is charging a small fee for the Dev tools. I always thought it was pretty generous that they were free in the past, and $5 is still cheap enough to grab them casually. What I don't particularly care for is paying five dollars for a singularly crappy installation experience. Those two things just don't mix well.

UPDATE:

For folks just joining us in this saga, please note that there are some additional installments dealing with the recent Xcode updates, how they're handled by App Store, and how to deal with them on space-constrained drives. Installment 2 deals with some general App Store issues I had. Installment 3 deals with the 4.0.5 update, which was the smoothest — though by no means perfect — so far.

Also, one reader points out that he was able to keep his file size down but still have success with updates by simply removing the .PKG files (found inside the .MPKG mentioned above) from  Install Xcode.app. He also points out a very cool trick that will allow you stop an in-progress update: simply option-click the INSTALL/UPGRADE button and App Store will give you the option to cancel the update. Handy!

No More H.264

Every time I start thinking about switching to Google's Chrome browser, they go and do something like this. Dropping H.264 support brings them right on par with my current and still favorite browser: Firefox.

Yes, it bugs me that Firefox doesn't support H.264. But if Chrome won't support it either, then that leaves me with Safari as my last best option, and that just won't do.

Much as I've been tempted, it looks doubtful I'll ever switch to Chrome.

UPDATE 1:

For a more detailed look, this superb Ars article.

UPDATE 2:

And an answer to the question, "Who's happy about this?"