Looking Forward to Lion

I admit it: I'm an OS nerd. I get very excited about new OS releases, particularly (okay, only) those of my OS of choice, Mac OS X.

Mac OS X 10.7 — or Lion as it's affectionately codenamed — is certainly no exception. In fact, Lion looks to be a very exciting release, both for its wealth of new features and for its refinements to Apple's already sparkling OS.

It's an exciting time to be an OS junkie, really. Snow Leopard was a wonderful release that brought stability and refinement to what can finally be called a mature Mac OS X. From here on out OS development seems to be less about making Mac OS X work quickly and succinctly — less about the guts of the OS —  and more about making it work well. That is, from here on out, Mac OS X developers are concentrating on making the Mac OS X experience a wonderful one. And that means even further refinement to an already polished OS, with maybe a dash of experimentation thrown in for good measure, thanks to convergence with Apple's mobile OS.

I haven't installed the beta, but I've read as much as I've been able to find. Here are some images and links, with just a dash of commentary from yours truly thrown in.

Mac OS X Server

One of the shockers about this release is that Mac OS X Server will be included, for free, with the standard Lion DVD. It will be a separate install, but has been discontinued as a separate, paid release. Looks like Apple's professional server platform is dead, but I'm glad it will live on in some form, at least for the time being.

Images Via AppleInsider

 

Administrative Tools and Goodies

One of the great things about OS updates — particularly the latest Mac OS X updates — has been further expansion and refinement of any and all administrative tools. This is, needless to say, of particular interest to SysAdmins like us. Here are some updates that Lion brings to the table baked right into the About This Mac window.

Images Via AppleInsider

The Finder

Of course I'm always, always, always happy to see Finder improvements and refinements, and it looks like there will be plenty in Lion.

We have some new and potentially very useful Finder views, though I must admit to not being a great fan of the iOS-like buttons in the toolbar. The sidebar is also toned down (a-la iTunes) and features some new and potentially useful items.

Image Via AppleInsider

Spotlight in The Finder is now smarter and more useful.

Image Via AppleInsider

And my favorite Finder view, column view, even receives some love.

Image Via AppleInsider

And finally, the big Finder news: windows can now be resized from any edge. Just like in Windows.

Image Via TheAppleBlog

 

Other Improvements

There are a bunch of additional refinements to the core OS. One of my favorites is support for automatically saving documents, or Auto Save as they're calling it.

Images Via AppleInsider

Auto Save is accessed just like Time Machine, which is just brilliant.

 

A signature capture utility also makes its way into Preview, allowing you to sign digital documents using that app and your built-in iSight camera.

Image Via 9to5Mac

 

Dock and Exposé get refinements as well.

Images Via Engadget

 

Even Spotlight gets better, with larger icons and inline previews.

Image Via AppleInsider

 

All-in-all, from what I've sen so far, Lion is shaping up to be a very nice release. I'm sure there will be under-the-hood improvements that will add performance gains as well. I am, as always, really looking forward to using Apple's next OS release.

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!

MobileMe vs Dropbox Redux

In my last post I talked about using Apple's MobileMe to mimic the functionality of Dropbox, and discussed it as a possible replacement for the file syncing service should I ever need more space than the free Dropbox offers. In the end, both services came up wanting to some extent. So I've continued to poke and observe.

The Mobile Situation

I had initially found MobileMe problematic, especially compared to Dropbox, and especially when dealing with, of all things, Mac-specific metadata. But it turns out that Dropbox is not without its own problems either. In fact, after looking more closely at my Dropbox data, not only are my custom icons and labels missing on one of my computer's Dropbox folders, but a good many of my image files, for some reason, don't display properly on my iPhone (or, for that matter, on an iPad I've had the good fortune to test out — more on that later) when viewed from the mobile Dropbox app.

The images seem fine on my computer, and when viewed from the web, but when viewed or downloaded to my iPhone they are corrupted, so it would seem to be a problem with how they're downloaded to the mobile app only, not corrupt data per se. Nevertheless, it's a problem.

Moreover, it's problem I don't have with MobileMe. The same images viewed on my iDisk app look fantastic.

Behavior-wise, though, I much prefer the Dropbox app. As I'd mentioned in my last post, it's capable of displaying text files with the .sh extension. But it's also a lot more friendly when it comes to viewing and managing images. Dropbox, for instance, allows you to use the swipe gesture to flip between images that are in the same folder, much like you can do in the native Photos app; iDisk doesn't. It also has a gallery view for image folders that iDisk lacks.

Dropbox allows you to create folders and add photos from your phone to your Dropbox; iDisk doesn't. iDisk, on the other hand, does allow you to share a file right from the mobile app, but this is something I never do, so it's not particularly useful to me. Dropbox's features are useful, and are ones I use all the time.

The Dropbox app is the clear winner in terms of behavior; I much prefer it. But it doesn't do me much good if my images don't display properly. Dropbox fails on a core piece of functionality, and that makes it hard to fully recommend if photos are your game.

Decisions, Decisions

I find myself ping-ponging between MobileMe and Dropbox: Dropbox is simple and easy to use, but MobileMe includes more features; Dropbox lets me read my shell scripts from it's mobile app, but MobileMe lets me view my photos more reliably. Overall, I like Dropbox better, but the image issue is quite possibly a deal killer.

Find My iPhone

Apple recently announced that iOS 4.2 will include the Find My iPhone service for free with the current crop of hardware. Though I'm still using an iPhone 3GS, I will almost certainly purchase the next revision of the phone, and that will probably be right around the time that my MobileMe subscription is set to expire. Since Find My iPhone is one of the few reasons I've continued to hang on to my MobileMe subscription, I'm seriously debating not renewing it when the time comes. My foray into Apple's cloud services has been largely disappointing. If Dropbox can fix this image issue by that time, it will make this decision a no-brainer.

It's a shame, really. Everywhere the iPhone shines, MobileMe falls down. Where my iPhone instantly allowed me to consolidate my Mac and mobile data (remember when your Address Book and phone contacts were completely separate?) MobileMe seems to offer a Mac-specific service that's easily replaced by free and more cross-platform solutions. Mail, contacts and calendar can all be provided better and for free by Google. And there are much better, faster and cheaper ways to get synchronized data storage and backup. What's more, I already give Apple most of the money in my technology budget, so I can't help feeling cheated when I have to fork over additional green for these services.

So, while not perfect in some really key areas, I will likely end up giving my money, this time, to Dropbox. Here's hoping they continue to improve their excellent, if not quite perfect, service.

UPDATE:

One other admittedly very minor beef I have with Dropbox that I just have to get off my chest: if you want gallery functionality, the folder used for images must be called "Photos." As a person who uses this folder almost exculsively for either drawings or computer graphics, I'd prefer something more neutral. iDisk uses the word "Pictures" which I much prefer.