Quartz Composer goodness

Delving into Leopard’s /Developer folder shows that Apple has spent a lot of time writing sample apps for developers to play around with to get to grips with the massive number of additions. In particular, a lot of work has clearly gone into Quartz Composer, whose headline feature is support for custom patches, including those written in GLSL.

Here’s some examples of some of the sample compositions that make use of the iSight camera:
qc1.png
qc2.png
qc3.png
qc4.png

I think the last one, called “Security”, was included as a screensaver in some of the earlier development builds. There’s a surprising amount to be found in the developer tools!

On the subject of Quartz Composer, Leopard now includes a large number of “default” compositions in /System/Library/Compositions/. I’m not sure what these are for, but they seem to encompass a lot of image units embodied in QC compositions. The new iTunes visualisers are also in there, along with all 40 Mb of Photo Booth movies. I was a little surprised by that, as obviously it means you can’t free up that 40 Mb of space by just deleting PhotoBooth.

(Incidentally, I notice that Leopard now includes the window’s drop shadow in screenshots taken using Cmd-Shift-4 space. Nifty.)

Printing in Leopard

Printing is not the most sexy of tasks, but Apple has paid a great deal of attention to printing in Leopard. Understandably, most of the new printing features have gone unnoticed by the mainstream press, overshadowed by Time Machine, Quick Look and Spaces.

The Common UNIX Printing System (CUPS)
The open source CUPS project was introduced as the underlying printing system in Mac OS X 10.2 (Jaguar). In a slightly surprising move, Apple acquired the open source CUPS project and hired its main developer, Michael Sweet, in February of this year.

No surprise, then, that CUPS in Leopard has been brought bang up-to-date, moving from version 1.1 in Tiger to version 1.3. The increase in version brings a range of new features, including:

  • An overhauled web interface (found at localhost:631), which adds printer searching, many admin options and more-consistent interface
  • Support for launchd — cupsd is now launched on demand
  • Thread-safety — in-keeping with Apple’s focus on multicore optimisations, the entire CUPS API is now thread-safe
  • IPv6 support
  • 16-bit per channel colour on supported devices
  • Greater support for IPP, including IPP notifications
  • Printer sharing via LDAP v3, optionally with SSL (I’m not sure if this is exposed in System Preferences, but it’s definitely there under-the-hood)
  • Greatly improved security and authentication, including Kerberos authentication, complete support for the Mac OS X Authorization Services framework and awareness of POSIX ACLs
  • Command line configuration from the new cupsctl command

And this list barely scratches the surface – printing in Leopard really is massively improved.

New print dialogs
This was mentioned in MacWorld’s ten overlooked Leopard gems and rightly so; Leopard finally brings navigable print-previews and page orientation settings to the print dialog box:
leopard-print-preview.png

Miscellany
Leopard also adds “Location-Aware Printing”, which will automatically set the default printer based, presumably, on the currently available network. And finally, Apple will be distributing third-party printer drivers through Software Update from Leopard onwards.

Some critics have (in my opinion, inaccurately) commented that Leopard focusses too much on eye-candy and visual superfluities. That clearly isn’t the case with printing, which has seen massive under-the-hood improvements in addition to some highly functional improvements to the user interface.

Leopard-mas Eve

‘Twas the night before Leopard, when all round the globe
People were waiting for DTrace and Xcode;

The reviews had been written by Pogue and by Walt,
Leopard looks great, with nary a fault;

But for me, the real power lies under the hood,
ImageKit, Ruby and other such goods;

Leopard’s looking like a developer’s dream,
Now UNIX certified, it’s the OS supreme.

But on a less poetic note, as a new OS X developer with no access to the pre-release seeds, I am massively excited about delving into the new goodness to be found at all levels of Leopard.

I think Pogue, Mossberg and others have already covered the majority of “user” additions to Leopard fairly comprehensively, but what about the changes from a developers perspective?

I’ve already written at quite some length on a number of the new developer additions in Leopard, including things like the scripting bridge, Objective-C 2.0 with garbage collection, new XCode and Interface Builder, PDFKit, ImageKit, the QTKit capture APIs, NSGridView and pervasive 64-bitness. Then there’s more features that I didn’t mention in that last article like DTrace, MPI, Ruby (including rails, Mongrel and Capistrano), new IOStream classes, NSOperation and NSOperationQueue and the list goes on. But what excites me most is the fact that there are yet more developer-related goodies that Apple hasn’t made public.

I’m aware of two of those goodies through people who have broken their NDAs: NSRuleEditor and an off-the-shelf CoverFlow view (most probably NSCoverFlowView). NSRuleEditor provides a view like those found in iTunes and Mail for selecting smart folder/playlist criteria that will presumably form an NSPredicate based on what the user selects. The CoverFlow is fairly self-explanatory. With two such powerful (but secret) additions to the OS X developer toolkit, it makes me wonder what other awesomeness we’re in store for tomorrow… 22 hours and 30 minutes to go!