Spotlight isn’t an application, but a service fully integrated into Tiger, exposed to developers, and shared by all Tiger
applications. It does rapid searches based on content and metadata. Spotlight drills into 14 different document types, including
Apple’s e-mail and address book databases, and it understands not only their encoded content, but also the invisible key/value
metadata that applications attach to files.
In practice, Spotlight is incredibly powerful. Entering the search term “PowerPC Apple” on a PowerBook with nearly 40GB of
searchable documents populated a results list as I typed, sorted by document type and relevance. Further qualifying the search
by adding the metadata string “kind:PDF author:apple” narrowed the list to PDF-formatted documents created by Apple. Spotlight
has a lengthy vocabulary of document-specific, shared, and system-supplied metadata types.
As with any search engine, you’ll get some false hits and missing matches until you get the hang of it. But once I was familiar
with Spotlight, I spent little time scrolling around in Finder, and I uncovered documents I thought were long lost -- including,
to my embarrassment, one large document I had completely retyped after a fruitless manual search.
One clever kitty
Tiger’s new Smart Folders allow you to save the results of a Spotlight search in a continuously updated list. This is a great
tool for managing projects: If new files, e-mail messages, or Address Book contacts that match your criteria are added to
your system, they show up immediately in a Smart Folder. The folder is virtual -- no files are moved or copied -- and you
can change a Smart Folder’s criteria at any time.
Spotlight has a few small flaws. When you kick off a Spotlight search from the Finder toolbar, it doesn’t match on Spotlight’s
full set of file types by default. Finder searches still suffered awful intercharacter lag (unacceptable on slower Macs) as
I entered search terms.
Also, Spotlight cannot index volumes on a server, so every user must build and search against a private index that points
at server content. When I mentioned this to the company, Apple’s response was that I should “expect great things from Spotlight
in the future.”
As for the other new features, they certainly have their place in the updated client. Automator reduces common, repetitive
operations to a workflow (pipeline) of predefined actions. To create each stage in a workflow, you drag icons for actions
into the workflow window. The actions run in sequence and pass their data to the next stage.
My first efforts with Automator were ambitious: Create a blank CD image on disc, do a Spotlight search, create a compressed
archive from the Spotlight results, and burn the archive to a CD. It worked on the first try and I was able to save that workflow
as an executable.
Tiger’s Dashboard interface pops up a layer of pretty desktop widgets, some hooked to services such as weather and Yellow
Pages. What I like most about Dashboard is the programming layer underneath. Apple really jazzed up JavaScript, and Dashboard
shows off the underappreciated WebKit HTML rendering engine Apple built around portions of the KDE project.
Unfortunately, Apple’s Mail.app remains a second-class mail client. In Tiger it gains Smart Folders that appear in the mail
folder hierarchy, but the mail folders can’t be freely rearranged or hidden to save space. Mail.app also lacks Outlook’s ability
to present multiple views. The e-mail API, most easily accessed through Automator or AppleScript, is in many ways more useful
than Mail.app itself. I prefer Spotlight for mailbox content searches.
Full tilt server
Everything in Tiger is in OS X Server 10.4, giving administrators access to Spotlight, Automator, Dashboard, and all of Tiger’s
desktop advantages. Below ground level, new development tools, OS changes, and a pair of updated frameworks allow OS X Server
10.4 to run native 64-bit daemons and command-line applications. You cannot link 32-bit code into 64-bit apps, so going beyond
basic system services and accelerated math will require the use of interprocessor communications between 32-bit and 64-bit
executables.