4747 words on Mac OS X 10.6 Snow Leopard
A few weeks sooner than expected, the new version of Mac OS X, version 10.6 Snow Leopard, has arrived. It’s the first revision of Mac OS X that is not named after a German tank. I provide some commentary, along with pointers to highlights and missed opportunities.
Apple’s motto for Mac OS X.6 was that it will not contain big new features but will revamp some of plumbing to make the operating system more future-proof. At the same time it is said to refine existing features to make them better. In other words: This may be the least exciting software update you have ever seen. The improved infrastructure will most likely be invisible and only pay off in the coming years, while the refinements will be small details that are difficult to spot but may shave a tenth of a second off your interaction with the machine here and there.
And yet, this update could be considered daring precisely because it is so unexciting. After all, the computer world as we know it is totally focused on its patented
OMG! Exciting! Bigger numbers! way of thinking. As a consequence it requires a lot of trust by people to buy an operating system that does not offer obvious advantages over its predecessor. Apple’s decision to put a moderate €30 price tag on the update will certainly help with that.
In the following paragraphs I will point out the features that I found noticeable, starting with my favourite ones. There’s invariably some nagging I’ll do while discussing the great ones and there may also be good things I have to say about the bad ones. It’s called dialectics. As the list has become rather long, I will split it across two posts. That way the fanboys can easily skip the bitching in the second half.
On this page there are the great - or at least partially great - improvements:
On the following page there are mostly what I consider the missed opportunities or questionable changes. The page ends with a list of short notes on other changes and additions.
Mac OS X’s Preview application has always been quite good. At latest since Mac OS X.3 it has surpassed Adobe’s Acrobat Reader (these days it’s apparently called Adobe Reader only) for those of us who have no need to view ‘strange’ PDF files. There remained one really nagging problem with Preview: its complete inability to recognise a page’s layout and handle tasks like multi-column text selection:
I am happy to report that this problem has finally been solved in Mac OS X.6:
Preview has actually seen more changes: The improved PDF annotation features may be fit for use in their new incarnation which reveals a new annotation toolbar at the bottom of the window. And - quite importantly - adding a note no longer destroys section and table of contents metadata in the PDF file upon saving.
Other changes in Preview seem more questionable: The application now lets you open multiple multi-page files in a single window. I guess it’s rare that people will want to use that - and, accordingly, there’s a new preference to prevent it. In fact I find the idea quite irritating because it adds complexity and an additional level of hierarchy of file names to the Preview sidebar. The only useful scenario I could see for this is a multi-file search, so I dragged a folder of PDFs on Preview and started a search. This did sort-of work but it was excruciatingly slow for some reason (a slowness that was noticeable in the whole system despite all the magic multicore technology and neither my CPU nor my hard drive being close to their performance limits)
Furthermore this - which is a common usability problem of Cocoa lists - makes it pretty much impossible to move a page inside a PDF document behind the very last page by drag and drop. The buttons at the bottom of Preview’s sidebar do not make terribly much sense to me either. Just tell me what they do from looking at them, and tell me how it’s a useful feature worth spoiling my UI for.
So far Mac OS X’s VPN support has been pretty crappy. Allegedly the OS has supported VPNs for a while. But neither of the VPN types I need from time to time, Cisco VPN and openvpn, actually worked with Mac OS X’s VPN support. Useless.
Anybody who had to use Cisco’s VPN software will know that it is a big disappointment. Not only because of the extra install one is required to do but because Cisco’s VPN software is among the shittest pieces of software I know. It’s ugly, it’s unstable (kernel panics are rare in Mac OS X these days, but a few of those I had, had Cisco written all over them), it’s virtually guaranteed to not work after big OS updates, it has an abysmal update policy (non-automatic and only behind a password protected page your server people have to provide) and its performance should make any engineer ashamed (on a fast WLAN connection Cisco VPN maxes out one CPU core [naturally the software is single-threaded] at less than 2MB/s, meaning that the network speed is limited by the CPU speed! in the 21st century!)
iPhone OS 2 already suggested that Apple finally got their act together and figured out how to write / buy software that can make their devices speak to Cisco VPNs out of the box. And now that VPN client is part of Mac OS X, part in the operating system’s neat Network preferences.
The details of this haven’t been totally worked out yet (in particular keychain support seems broken and there’s a blatant typo in the German user interface), but the very fact that it works and removes the Cisco piece of agony from my machine is a good step forward already.
The next steps here would be support for importing Cisco profile files, support for more esoteric Cisco setups (at least I’ve heard people say that this doesn’t work for everybody) and then support for openvpn
I have been a big fan of Services ever since I started using Mac OS X.0. The concept of making the features of one application available to all other applications is very appealing. And Services provide a simple interface for that. Unfortunately the Services menu quickly became a junkyard with all applications on your drive happily adding their items to it even though you would only ever use 10% of them. NextStep apparently had functions
NSSetShowsServicesMenuItem &c for showing and hiding Services menu items which Apple deprecated, leaving people in a chaotic situation and leading to a neglect of that wonderful technology.
Personally I solved that problem with ICeCoffEE which let me choose Services menu items, added them to contextual menus and removed the inactive ones there. And Apple finally agreed to steal exactly those features for good and ship them with their OS.
And hence an adjusted Services menu for a text selection could look like this:
You can set up the Services that are displayed in the Keyboard Equivalents tab inside the Keyboard preference pane. As this is hard to find, there is an item inside the Services menu for getting you there as well. Those preferences look a bit broken in German and suffer from a lack of application icons and resizable split views, but the basic features are working already.
Interesting bonus tidbit: The settings for this seem to be stored in ~/Library/Preferences/pbs.plist, they even contain different settings for the Services menu proper and the services listed in the contextual menu. Perhaps that will be an interesting playground.
Of course Services are best if they do exactly what you need to be done. Most likely that’s only going to happen if it was you who created the service in question to begin with. This has been an easy exercise for a while thanks to This Service which is a pleasant tool for wrapping any text processing script you may have into a service providing application. Mac OS X.6’s incarnation of Automator comes with a template for creating Services as well, so there’s another route to go (even though, knowing Automator, I’m not sure how useful that will be). My favourite home-made Services are:
A bit of work has been done on OS X’s text features. To a certain degree this has been available before but the features are more readily available now and suck less. The first one are smart quotation marks. Their style can now be set up in Language & Text preferences (renamed from International):
Many applications that use the Cocoa text system will offer to turn on smart quotation marks in their Edit menus or their text areas’ contextual menus:
The big progress here is that you can now choose the type of quotation marks you want to use, as the English ones will be wrong for most people. (It seems that the system isn’t particularly good at setting the correct quotation mark style for your language by default when you upgrade an account, so it’s worth checking and - if necessary - correcting that.) You can even change the quote-style on-the-fly in the Substitutions palette that you can open:
But once you try these smart quotation marks, you will notice that, for example, the French ones lack non-breaking spaces inside the quotation marks (unfortunately the popup-menu UI for this prevents an easy manual repair of this but perhaps fiddling with
NSUserQuotesArray in the user defaults’
NSGlobalDomain may do the trick if you don’t need to use the GUI again later on). It is certainly nice to have this feature, but I am not quite convinced yet that it will good enough to be practical for people who use more than a single language. Without automatic switching or language detection, using this in a correct way may just be too much effort.
Another potentially nice feature is the automatic text substitution (as known from Word 6, I presume) which may fool people into ‘typing’ proper ellipses and dashes because the System automatically replaces things for them. Personally I also see opportunity for convenient access to Unicode characters that are inexplicably missing from most keyboard layouts:
I don’t know about you, but I have cursed Mac OS X many times over the years when it refused to eject a volume. Usually this happens when you are in a hurry and the system will just say that the volume cannot be ejected because it is in use. Of course the damn computer knows very well what is in use on that drive and who is using it, but Apple considered it wise to not tell the user (after all, doing so would have seemed so ‘Classic’).
Hence there existed a pragmatic way to solve this problem: Make sure all your documents from that drive are saved and closed and simply pull the FireWire or USB cable. The machine will then tell you off for what you did and you may have damaged something on the drive but you’ll be out of your office quickly. The ‘smart’ way to solve the problem was to run the
lsof command in the Terminal to learn about the files and try to quit the applications which didn’t close them properly (usually Preview or a Terminal window in which you
cded to a folder on the volume in question) and then unmount. Quite frequently, however, the files were held open by the System (hello Spotlight!) so you could earn its wreath either by killing its demons (bad) or unplugging the drive (bad). [̇I’m still wondering whether running
umount -f is better for the drive as, theoretically, the system should have a chance to write everything out when doing that…]
In fact, not too long ago the neat utility Why Not Unmount was published which helps you avoid the Terminal chores and tells you who is preventing the unmounting of what. As existing applications for some task seem to make Apple happier to implement the same feature in the OS, Mac OS X.6 now comes with a similar feature built-in. Try to unmount a volume which is busy and you will see this with an indication of the offending application. Also note that the volume’s icon is nicely dimmed while the unmount attempt takes place:
OKOK, this is not a personal favourite of mine but it’s so big that it needs to be mentioned: Mac OS X.6 does the whole 64bit thing now. And because 64 > 32 it’s one of the places where the number game works out in this update, so everybody is going to look there.
As far as I can tell there are two advantages to using 64bit software on Intel Macs today. The first is the usual 64bit advantage which means that an application can address a huge amount of memory without any extra effort. From what I have read on this topic (say in Apple’s developer documentation) this may come at the price of making applications a little slower as there may be more unused memory to achieve proper alignment and all pointers double in size, putting more stress on the caches and so on. However, the remarkable benefit of Apple’s switch to Intel chips is that Intel’s 32bit architecture seems to be so remarkably bad that switching to 64bit can actually improve speed a little, simply because that architecture is better. Hooray!
More seriously, I think that it’s a good idea for the system to become a 64bit system. Not because many applications are going to need more than 4GB of memory. But rather because that’s how things will work in the future.
In fact I am wondering / cowering in fear about the question how Mac OS X.6 handles usage of huge amounts of memory: Mac OS X.5 will happily give an application as much memory as it demands until the magic 4GB barrier (minus ca 600MB of mystery crap) is hit. The consequence of that is that you will have a single application using almost 4GB of RAM. Which is unpleasant. Your machine ends up in swapping hell and in case you only have 2GB of RAM restarting is the quickest way out of that. With 4GB of RAM you may get away without the restart, but things will still feel sluggish. Whenever applications ran amok in this way, I was thankful for them to be able to request 4GB of memory at most. What would have happened if they were 64bit applications and could have requested a few fantastizillion bytes of memory? Does Mac OS X.6 provide any safeguards that stop applications from misbehaving in this way and ensuring that the GUI remains responsive even after such a RAM amok run?
While Apple themselves tried (well not really hard, cough cough, iTunes) to convert their applications to 64bit binaries, third party software will need a while to be updated. While you could already run 64bit binaries on Mac OS X.5 it didn’t really seem worth the effort unless you needed the RAM (which means that only httpd and Chess were running as 64bit processes‽). And if your application needs to run on Mac OS X.4 as well, things start being a little tricky, both because you will have to go through some nerve-wrecking conditional compilation setup in XCode’s inspectors and also because Apple’s 64bit sanctioned data types like
NSInteger are not available in Mac OS X.4. Ugly ugly ugly.
Another interesting (in the sense of frustrating) aspect are plug-ins. Some rule in computing says that an application can only run code of the same architecture (unless you have some clever 1990s stuff like Apple’s 68K-for-PPC emulator running). As plug-ins are code, this 64bit story must be a nightmare for plug-in developers. To a certain extent Apple made an effort to address that, there are separate demons ‘mdworker32’ and ‘quicklookd32’ which will run 32bit Spotlight and Quick Look plug-ins and extra processes QTKitServer for running 32bit QuickTime Codecs as well as WebKitPluginAgent to run old browser plug-ins (another neat way to move Flash’s crashiness out of Safari as well, I suppose).
For preferences, Apple made less of an effort and the System Preferences application simply relaunches in 32bit mode when a 32bit preference pane has to be loaded. You can also set up any application to launch in 32bit mode by clicking a check box in its Finder Information window. Other pieces of software just don’t make any effort to bridge the architectures: 32 bit screen saver modules are not run which essentially breaks all the non-Quartz Composition screen savers I may enjoy. Of course that seems like a pile of bullshit once you remember that 32bit machines can run the same OS and once you accidentally open the Screen Saver preferences when System Preferences is running in 32bit mode.
Even other plug-ins, like those for the Address Book (I have one of those and it seems a nightmare because the code isn’t very new and there also seems to be disagreement about autorelease pools, grrr) or Quartz Composer (yup, got one of those as well, but Apple seem to have nicked the idea now and included it in Quartz Composer proper), just fail to work quietly and do not load.
The final point is the kernel. As people will be shrieking left and right by the time you read this: shock horror! Mac OS X.6 does not boot a 64bit kernel in consumers’ hands. People know this by looking at the
kernel_task line in Activity Monitor or, if feeling more l33t by typing
uname -v into their Terminal and seeing a result with
386 rather than
x64 in it. My claim is that if Apple had simply faked those outputs there might be less ‘outrage’. On the other hand it would be harder to tell which people to shoot, in particular, the people crying about the ‘scandal’ of not running a 64bit kernel seem to be unable to even say in which way their machine would run better when doing so.
Allegedly XServes actually start with a 64bit kernel, allegedly having ‘64bit EFI’ in your computer is necessary, allegedly the restriction to ‘64bit EFI’ exists but is not the reason from a technical point-of-view, allegedly holding the ‘6’ and ‘4’ keys on your keyboard when the machine is powered on starts it with a 64bit kernel. Ho-hum, I’m sure people will have a fun field day with that. And I guess the two people who actually need this will be able to figure out what to do while I simply enjoy that I can still use my old 32bit kernel extensions without needing to worry.
Under the hood, Mac OS X.6 comes with all sorts of gizmos for more efficient usage of multi-core processors and graphics chips. That’s most likely a smart move as recently processor technology developed exactly in those directions. As dealing with multi-threading and even GPU computing is tricky, having an operating system that does most of the effort for you is great and will make it more likely that people can actually benefit from their n-th CPU core.
The thing is that this is not the only difficulty on the way to mastering multi-core computing and that a lot of software will remain philosophically single-threaded or dependent on external resources which will lock it up regardless of the multi-core cleverness.
It is probably great to have technologies like Grand Central Dispatch and OpenCL but it is hard to see a benefit in them now (although you can spot dispatchy stuff in your crash logs if you are into that kind of thing). I will need a Graphing Calculator equivalent for these technologies to convince me that they open new avenues for computing. Currently I perceive the limiting factor of my computing speed to be the hard drive’s speed rather than the CPU’s, hence I do not see where the benefits from these technologies are coming in. But I am looking forward to be surprised.
For some reason Apple felt compelled to include a completely new QuickTime Player with Mac OS X.6. It has one good feature: Screen Recording which can be very helpful to send people a short recording of what they need to do. Like the other screen capture applications I have seen, it can only record a single screen (the main one) and its image quality is lesser than the competition’s. Yet, I am sure they can kill a reasonable fraction of a ridiculously vivid software market for screen recording tools. Which is a shame for developers but not necessarily bad for users.
The Screen Recording window already gives away the new black chique in QuickTime Player (wasn’t QuickTime Player an early adopter of the ‘brushed metal’ look as well?). Once you click around in it you will discover the menu hiding in the downwards-pointing triangle of that window and the record button. Clicking the record button reveals must be what I consider one of the most ridiculous user interfaces I have seen in a long time:
Perhaps, just perhaps, the billion dollar corporation from Cupertino could have found someone qualified to create an equally powerful interface for this without needing a non-standard slightly transparent window, a click, a sheet full of text with more strange elements in it and another click to start the recording. This just doesn’t make sense.
As a bonus, Apple ship their German keyboards with Command keys labelled with ‘cmd’ and ‘⌘’, meaning that the person who’s considered helpless enough to need all that text will have to figure out that the word
Befehl in the sheet refers to the same key.
Film playback is a bit weird as the new-style window will hide its title bar after a while. The idea sounds all nice, clean and efficient but I find all the additional appearing / disappearing animation triggered by it worse than the waste of space a persistent title bar would have caused. The playback controls now appear on top of the film and fade out as well (making the width of the controls the minimum width a film can be played back at). Unfortunately the controls and the ‘scrubber’ have a fixed width and don’t grow width-wise with the window to allow easier jumping inside films. Although the playback controls can be moved to a position of your choice in the movie, QuickTime Player immediately forgets about your preferred position for them and displays them in the standard position for the next film you open.
The playback controls also contain a strange icon with an arrow in it. That icon contains oddball export options for iTunes, MobileMe and YouTube. Personally I have never exported things to any of them, but rather exported to files. To do that, however, you cannot use the Export menu but you will need to go to the File menu as usual. Curiously that Export menu also contains a non-Export command named ‘Trim’ which is probably the only good new thing about the film window and lets you cut off the beginning and end of a film if you wish. That can be quite useful, for example when using the screen recording feature.
A further interesting - but not convincingly well-implemented - change in the new QuickTime Player is how it handles films with chapter marks. It offers a little preview screen that lets you easily jump to each chapter. While I’m not totally convinced by that, it’s an interesting idea at least, one that triggers the question why the OS ships with three distinct applications (DVD Player, QuickTime Player, iTunes) for playing back films.
The new QuickTime Player should be fine for simple playback as it makes that simpler with a strange user interface. But its very simplified Export options lack any information or detail and its AppleScript dictionary seems to be incompatible with that of the old QuickTime Player. There also seems to be no support for multiple video and audio tracks or subtitles as offered by Perian. Altogether that is not too flattering - and I didn’t even mention the new icon. Mentioning which, I also feel compelled to mention that the small document icons in the Finder are much harder to recognise (polite way to say ‘worse’) than the old ones were and that for me some film files open in the new QuickTime Player while others open in the old one which still ships with the OS but requires you to explicitly check it in the Installer’s options. It will be called ‘QuickTime Player 7’ and located in the Utilities folder then.
Until tomorrow then!
I fail to see the point discussing in English items that you show in German. You many not be aware of that feature, by System Preferences allows you to start any application in any language you want (including English). Welcome to the 21th century…
Thanks for your hint. I am aware of the ability to change the language used by the system, but for a report of my personal experiences I prefer showing screenshots as I see them in regular usage, i.e. in German.
From comments I had in the past I also concluded that my English-speaking readers actually find this interesting because it’s rarely crucial to read all the text in the images and it helps them keep in mind that Mac OS X is a multilingual system.
Jean-Christophe: part of what Sven is reviewing is the quality of localization and internationalization in OS X. Why is that so hard to understand?
Welcome to the 21th century…
sometimes known as the 21st century…
JC > “System Preferences allows you to start any application in any language you want (including English)”? I can only set ALL application to ONE language, but not use like Safari in Hindi while Mail is in Suomi. That feature seems to have vanished w. 10.6.? :(
You can choose languages on a per-application basis in the “Language” pane of the Finder Get Info window of a particular application.
That’s not true. In Mac OS X.6 the ability to deactivate languages in the Finder’s information window was removed.
(As disabling languages actually moved folders inside the application’s bundle, the feature wasn’t particularly useful beforehand either as it required people to have write access to the application to use it.)