Every so often, a utility comes along that is so useful and so well-implemented that it’s painful to use Macs that don’t have it. For Adam, that utility is LaunchBar, a simple yet powerful application launcher with great potential. Also this week, we offer Mac OS X troubleshooting advice wrapped in a plea for a Conflict Catcher-like utility, discuss the release of BBEdit 7.0.3, note Chimera’s renaming, and mourn the demise of Caffeine Software.
BBEdit 7.0.3 Squashes Bugs — Bare Bones Software has released BBEdit 7.0.3, a minor but worthwhile update to their powerful text and HTML editing software. Along with a number of bug fixes (see the full release notes for a complete list), BBEdit 7.0.3 provides a new option in the "Text Files: Opening" preference panel that optionally links character set encoding to the HTML or XML character set of the file. (Being able to turn that option off should let BBEdit open documents which contain data that can’t be correctly represented – something we do daily here at TidBITS!) BBEdit 7.0.3 also works around a limitation in Macromedia Dreamweaver MX so non-ASCII characters can correctly be passed back and forth to BBEdit, and turns off the default application preference for QuickTime playback to permit BBEdit to open items (such as .m3u and SMIL files) that QuickTime considers its own. Two other improved features: there’s a new HTML placeholder for inserting the short user name in Mac OS X, and the Close Current Tag command is a bit smarter. The BBEdit 7.0.3 update is free to registered users and is a 15.1 MB download. [ACE]
Caffeine Software Suspends Operations — On 03-Mar-03, Caffeine Software, makers of TIFFany, Curator, Cycles, and the elegant PixelNhance, suspended operations. The note on Caffeine Software’s home page gives no indication as to why the company closed down, and our inquiries haven’t turned up any additional information. After a week or so, Caffeine Software modified the home page to add a link to a 57.1 MB disk image containing the latest official versions of all their applications. If you don’t own TIFFany, it’s still possible to request a trial license from Caffeine Software’s license server, although I don’t know if it will actually expire in a month as it claimed. Their other applications are free as far as I can tell, and are fully functional. I’m mainly sad to see PixelNhance go; it’s a slick and simple image-editing program with a fun interface that makes an excellent addition to iPhoto’s editing tools. Still, I’m pleased that Caffeine Software saw fit to make their programs available at the end in this way; perhaps they’ll see life again at a new company. [ACE]
Chimera Becomes Camino — For legal reasons, the Mac OS X open source Web browser known as Chimera has been renamed Camino, and the team has released version 0.7. New features in Camino 0.7 include a Download Manager, compatibility with URL Manager Pro thanks to support for the Menu Sharing Protocol, a global history of visited sites in the sidebar, a Send Link menu item for mailing links, support for dragging of images and links to other applications and to the Desktop, the capability to show local FTP and Web servers via Rendezvous, and many more improvements that you can read about in the full release notes. Although I like Camino’s tabbed browsing and sprightly performance, after living with Camino as my default browser for a week, I find myself longing for Safari’s raw speed and Google search field, and for Internet Explorer’s subscriptions and industry-leading URL auto-completion. Still, it’s great to see the Camino team continuing to add features and improve the browser – competition helps the entire field continue to evolve and improve. Camino 0.7 is a 7.6 MB download. [ACE]
Way back in the dawn of computing, there was a word processor called WordStar. Many people who used it heavily claimed that its keyboard controls had become embedded in their fingertips, but I never quite understood what they meant. Thanks to the Mac OS X utility LaunchBar, written by Norbert Heger of Objective Development, I now know what they were talking about.
LaunchBar is a launcher utility. Apple provides plenty of ways of launching applications in Mac OS X, such as double-clicking application or document icons in the Finder, clicking icons in the Dock, or choosing an item from the Recent Items menu. But all of these approaches – and most other launcher utilities – fall down in one way or another.
Double-clicking an application is easy and obvious, but it requires that you navigate to that application in the Finder, which in turn requires that you know where the application is located. Clicking icons in the Dock works fine for a small number of frequently used applications, but only for a small number, and you must set them up in advance. The Recent Items menu implements an undeniably good idea – speeding access to those items you happen to have used in the recent past – but as soon as you want to launch an application that’s not in the Recent Applications list, you’re back to hunting through the Finder. Worse, you never know if a seldom-used application will be in that list until you look.
LaunchBar solves all of these problems.
Type to Launch — Although there are multiple ways to activate LaunchBar, such as clicking its menu bar icon, Dock icon, or window, the way most people use it is by pressing a system-wide keyboard shortcut. You can pick from five pre-defined possibilities; I use Command-Space. Once you’ve activated LaunchBar, you type a few characters from the name of the application you want to launch, verify briefly in LaunchBar’s unobtrusive window that it has associated your typing with the correct application, and press Return. The entire process takes only a second, no matter what application you may be launching.
Let’s compare LaunchBar’s approach with the other methods of launching applications. Because LaunchBar automatically scans your hard disk for applications when it launches, it always knows exactly which ones you have installed, and it lets you launch any of them without the least bit of hunting through folders in the Finder. Since it scans automatically, you don’t have to set it up explicitly, as you do with the Dock and many other launcher utilities (although you can control where it looks when scanning for new items to make available for launching – more on that in a bit). And finally, it doesn’t care if you last launched an application yesterday or a year ago – the last access time has almost no meaning to LaunchBar.
LaunchBar also doesn’t stop at launching applications. It can open documents in their associated applications. It can open folders in the Finder, and you can even navigate through folders with the arrow keys right in LaunchBar. It can open specific preference panes in System Preferences, or specific tools in Karelia’s Watson. It can open bookmarks from any Web browser in your default Web browser or, in the latest version of LaunchBar, in a specific Web browser. It can even "launch" email addresses; that is, it can create a new email message to the selected address using your default email program.
You’re probably wondering how LaunchBar knows that if you type BB that you want it to launch BBEdit. The answer is simple – it’s magic. Okay, it just seems that way – it’s actually an intelligent adaptive algorithm, which means that LaunchBar makes an educated guess. It’s pretty good – if I type IPNM, it guesses correctly at IPNetMonitor X. The problem comes when the abbreviation you type can reasonably match multiple applications, documents, bookmarks, or email addresses, at which point you must scroll through the list of choices LaunchBar displays and pick the correct one. So, if I type RE and want Retrospect Express, I have to pick it manually once or twice so LaunchBar knows that I don’t want Retrospect, or Retrospect Client, or ResEdit, or one of the zillion Kagi Register applications from numerous shareware programs on my hard disk. And yes, there’s a way to specify mappings that LaunchBar could never guess, such as MAIL for Microsoft Entourage.
This adaptive algorithm is what sets LaunchBar apart. When it’s just starting fresh, it makes intelligent guesses, but when it guesses wrong, it learns from its mistakes and constantly adapts itself to the user’s idiosyncrasies. It’s also forgiving – I make typing errors in my abbreviations all the time, but as long as LaunchBar does the right thing, I’m happy. At worst, my mistake will force me to teach LaunchBar about a different abbreviation mapping later.
Using LaunchBar’s keyboard-based approach to launching files turns out to be incredibly quick, but even better, it turns out to be fairly universal. Like all Mac users, Tonya arranges her Mac the way she wants, which always befuddles me when I sit down at it. No longer do I have to ask where she’s stored something or use Find to locate it. Now I just hit Command-Space on her Mac, type an abbreviation, and let LaunchBar work its usual magic. So, LaunchBar actually helps provide a consistent interface for multiple Macs that may be set up in very different ways behind the scenes.
Configuration — Where does LaunchBar find the set of applications, documents, and folders to match to abbreviations you type? If you choose Open Configuration from LaunchBar’s Configuration menu, you see a somewhat complex window that shows just which folders LaunchBar scans. You can add folders or files by dragging them into the window, and you can turn the pre-defined folders on and off with the checkbox next to each one. For instance, since I have Apple’s Developer Tools installed, LaunchBar was set to let me open large numbers of developer documentation files; since I’m not interested in opening them quickly or having them compete for my abbreviations, I simply turned them off. (On the other side of the coin, Contributing Editor Matt Neuburg said that without LaunchBar’s special awareness of the Cocoa documentation files, it would be basically impossible for him to do any development work at all.) I did, however, add all my Eudora address book files in the Nicknames folder, since LaunchBar didn’t know about them by default.
Realistically, I suspect most users will never even delve into LaunchBar’s Configuration window, but if you find it constantly suggesting items you never want to see again, a trip into the Configuration window to disable or delete the folder that holds those files is worth the effort.
Further Refinements — Within this basic functionality, LaunchBar offers numerous tweaks that most users probably won’t use, but which can make a huge difference for those that can utilize them. If you press Option-Return after selecting an application, LaunchBar hides all other applications while launching. Press Command-Return, and LaunchBar shows the selected application in the Finder. LaunchBar supports drag & drop, so you can drag a file to LaunchBar’s window to open it with the selected application, and you can even start dragging, then type LaunchBar’s activation key and the necessary abbreviation, then drop the file on LaunchBar’s window. This could be handy for opening an HTML file with BBEdit, for instance, when double-clicking would normally open in Safari. Drag & drop can also be used with folders to move or copy files, make aliases and so on.
For those who dislike the Dock and keep it hidden, LaunchBar can show a list of running applications. Press LaunchBar’s keyboard shortcut twice; once the list is visible, you can arrow through it, click the mouse, or use a scroll wheel to select an application, after which releasing the Command key brings it to the front.
Extending the Metaphor — LaunchBar usually supports bookmarks and email addresses by looking into the bookmark or address book files for the various Web browsers and email programs. However, in situations where it can’t read the program’s special file format (as with Outlook Express, Entourage, and Mailsmith), you can work around the problem by exporting a text file and telling LaunchBar to scan that file for email addresses.
But this gets one to thinking. Wouldn’t it be nice to find a phone number or postal address for someone in your contact database by typing an abbreviation for their name? LaunchBar could display all contact information for that person, and it could perhaps send selected bits of that information to different applications. So, pressing E might create a new email address in your default email program, pressing P might dial the phone using your modem, and pressing A could put the postal address on the clipboard for pasting into other applications.
Those features would be welcome, but even cooler would be an XML-based abstraction layer that would let anyone teach LaunchBar how to understand new types of data and act on them, perhaps using AppleScript to send the information to the desired application.
Crossing the Bar — I’ll admit it. I’m utterly addicted, and like those WordStar fans of yesteryear, I find myself typing Command-Space on just about any Mac I’m using. And when it doesn’t work because LaunchBar isn’t installed, I feel like an addict denied his fix. I’m even unreasonably irritated when the Mac is running Mac OS 9 and couldn’t possibly be running LaunchBar. LaunchBar has worked its way into my neurons, and I’m all the more productive because of it. It’s absolutely worth a try, and that’s especially true if you use lots of applications, you’re primarily a keyboard user, or you’re coming to Mac OS X from the Unix command-line world.
LaunchBar 3.2.9 costs $20 for individuals, $40 for business users, and there’s a trial version available that gives you LaunchBar’s full feature set, but only works for seven activations per session. It’s a tiny 246K download.
PayBITS: If learning about LaunchBar makes using Mac OS X as easy
for you as it did for Adam, why not drop him a few bucks in thanks?
Read more about PayBITS: <http://www.tidbits.com/paybits/>
Here’s the good news. Mac OS X doesn’t suffer from the same sort of conflicts that Mac OS 9 did. You will seldom, if ever, find that installing a new piece of software causes some other program to act in an unnatural, demon-possessed fashion. Apple promised that level of reliability, and they delivered.
Now here’s the bad news. Mac OS X has its own soft underbelly, and an appropriate bit of file corruption in the wrong place can cause all sorts of wacky problems that can be devilishly difficult to track down. Here are a few quick examples I’ve experienced.
When I upgraded Tonya’s Power Mac G4 (QuickSilver) to Jaguar, using the Archive & Install option to get a nice clean version, the Finder would launch, then quit, launch, then quit. The Mac was unusable, or it would have been if Tonya hadn’t had a second user account that she used for documentation. When I logged into that second user, everything worked fine. To make a long story short, I discovered that moving Tonya’s ~/Library/Preferences folder out to the Desktop and logging in again solved the problem (remember from Kirk McElhearn’s command line articles that the ~ is a shortcut for your user’s home folder). Then, a note from Fetch author Jim Matthews on a mailing list I’m on saved me from the tedious effort of tracking down the culprit, which turned out to be the com.apple.LaunchServices.plist file. I logged in as the root user, deleted that file, and Tonya was able to log in to her Mac again. Marital strife ("You did what to my Mac?!?") narrowly averted!
This turned out not to be an isolated incident. Aside from Jim having had the same problem, when my parents upgraded their Power Mac G4 Cube to Jaguar, the problem happened again with my mother’s account, necessitating an unscheduled evening visit to restore the Mac to working order. Once again, I enabled the root user, deleted com.apple.LaunchServices.plist, and the problem was gone. It even renewed my parents’ faith in my skills and their belief that my expensive education hadn’t been for naught. Phew!
A similar problem appeared on my Mac recently as well. I wrote about the Maxtor Personal Storage 5000 FireWire hard drives for Macworld a few months back because the Maxtor drives have this neat button that, when pushed, launches Retrospect Express and performs a backup. But at some point, well after I’d handed in my review to Macworld, the buttons on a pair of Maxtor drives stopped working, first when using my iBook and somewhat later on my Power Mac G4. Eventually I managed to get in touch with the right people at Maxtor, and after they were unable to reproduce the problem, it was escalated to the programmer who had written the driver for the button, John Brisbin. John and I verified that everything was installed correctly, and that the driver and notification application were loaded and running, but it still wasn’t working.
Then came the moment of insight. John had me check to see if the Retrospect Express plug-in that did the work was set to launch Retrospect Express in the "Open with" pane of the Get Info window. It wasn’t… on either machine, and in fact, the pop-up menu offering other choices for programs that could open the plug-in contained utterly random files that weren’t even applications. On his recommendation, I first threw out my user’s ~/Library/Caches/com.apple.LaunchServices.UserCache.csstore file, which is a cache of file types that are associated with specific applications for the user, and when that didn’t help, I tossed /Library/Caches/com.apple.LaunchServices.LocalCache.csstore, which is the system-level cache of associations that apply to all users. A restart was necessary at that point, but when the Mac came back up, the plug-in knew it was linked to Retrospect Express again, and the button worked perfectly.
Two final minor examples. Just a few days ago, someone complained to me that iPhoto wouldn’t show his Keywords window, and another person complained that their copy of iPhoto no longer played slideshows. In both cases, throwing out the com.apple.iPhoto.plist file in ~/Library/Preferences eliminated the problem instantly.
Why We Need Conflict Catcher — You can see where I’m going with all this. We may no longer have conflicts between programs in the same way we did with Mac OS 9, but it’s clear that Mac OS X and its applications are just as vulnerable to problems in their support files as they ever were. There’s nothing new here – corrupted preferences files caused all sorts of problems in Mac OS 9 too.
What has changed is that Mac OS X has so many more files, and stores them in so many more locations, that it’s difficult to determine where the problem may lie. Let me tell you another story that illustrates this.
A few days ago, the text in my Eudora toolbar and InDesign palettes, both of which use the Geneva font, suddenly became horribly ugly and jagged, although Geneva-formatted text in other applications looked fine. I didn’t do anything that could have caused that change as far as I knew, so I immediately chalked it up to a corrupted preference file or font cache file. Logging into the second user on my Mac proved that the problem was related to my user’s settings, since the problem didn’t occur in Eudora or InDesign for that user.
But then I spent about 45 minutes pulling preferences files, fonts, cache files and more, all in vain. I even extracted my user’s entire Library folder and let Mac OS X rebuild a new one; no change. The entire process was becoming highly frustrating, as I had to make a change, log out, log back in, launch InDesign, verify the problem still existed, and move on to the next test. I consulted Ted Landau’s excellent book, Mac OS X Disaster Relief, which suggested deleting the system font cache. Even that didn’t help. Finally, while reading Ted’s discussion, I had the brainstorm that perhaps something had happened to my font smoothing settings. That was it – somehow the "Turn off text smoothing for font sizes" setting in the General preferences pane had been reset to 9 point, whereas it had to be set to 8 point for Eudora toolbars and InDesign palettes to look good. All my rebuilding of preferences files didn’t help because it kept going back to 9 point. If I’d had a tool like Conflict Catcher that could have eliminated all the preference and cache files from the equation quickly, troubleshooting wouldn’t have taken nearly as long.
I hope all these stories make it clear why we need a utility that can automate standard troubleshooting procedures. In short, we need Casady & Greene’s Conflict Catcher, but we need it for Mac OS X. Conflict Catcher has basically all the necessary functionality for Mac OS 9, and as much as I’m sure people thought it wouldn’t be needed under Mac OS X, recent experience shows the opposite. For those that aren’t familiar with it, Conflict Catcher speeds up troubleshooting conflicts in Mac OS 9 by moving files out of functional folders (Control Panels, Extensions, Fonts, Preferences, and any others you specify) to disable them. Then you reboot, verify if the problem exists or has disappeared, and continue the process. Conflict Catcher keeps narrowing the set of possible culprits until, after some number of reboots, it can point the finger directly at one or more problematic files. Obviously, Conflict Catcher in Mac OS X would have to look at various different preferences and cache folders, act as root to move certain files, and automate the verification step, but those are all functions that the program had under Mac OS 9.
Automating the process of disabling and re-enabling files isn’t rocket science, and an enterprising shareware developer could easily step into the gap here. It would be great to go beyond what Conflict Catcher could do and apply some intelligence to the otherwise brute-force process as well, so you could say that your problem related to iPhoto, for instance, and it would take a quick first pass on disabling those files most likely to be related to iPhoto. We’ll be discussing what such features a troubleshooting tool should have on TidBITS Talk; feel free to join in.
Go to the Root — While we’re on the topic of troubleshooting, let’s talk briefly about the root user that figured in my first two examples. For those who don’t know, the root user is a user that exists on your Mac and that has access to every file. There’s nothing the root user can’t do, and that makes it as dangerous as it is useful. When you’re logged in as the root user, nothing prevents you from deleting even files that Mac OS X needs to operate. So, although it’s reasonable to use the root user on occasion, it’s important that you do so only when necessary, and leave it disabled the rest of the time.
How do you access the root user? Launch NetInfo Manager from the Utilities folder inside your Applications folder. From the Security menu, choose Authenticate, and enter your administrator password. Go back to the Security menu and choose Enable Root User. If necessary, NetInfo Manager prompts you to give the root user a non-trivial password. Open System Preferences, click the Accounts icon (not My Account!) and turn off "Log in automatically" (you may have to click the lock button at the bottom to make changes). Turning off automatic login isn’t necessary, but I find it’s a good reminder to disable the root user when you’re done. Now log out, and in the login window, log in as "root" (you may need to click the Other button to get username and password fields). Once you’re logged in as root, you can delete files in any user’s folder, so be careful. Do what you need to do, log out and back in to test your changes, and then disable the root user in NetInfo Manager by choosing Authenticate from the Security menu, entering your administrator password, and choosing Disable Root User from the Security menu. Then return to the Accounts preferences pane and turn automatic login back on if you want.
For those Unix-heads wondering why I chose to enable the root user in NetInfo Manager rather than use the sudo command from the command line to delete the offending file, in both of these cases, I didn’t know exactly what file to delete at first, and I needed the flexibility of the Finder. Had I known for sure what I had to do, the command line might have been faster.
Split Personalities — I want to leave you with a recommendation I now make to everyone who uses Mac OS X. These and other problems have convinced me that you simply must create another user on your system with administrator privileges. You don’t have to use it for anything other than troubleshooting, and in fact you shouldn’t use it much at all. I call mine "Ghost in the Machine" (ghost for short), and I give it the same password as my main account so I don’t forget it.
When you’re faced with some sort of a problem, log out, and log into your ghost account to see if the problem is still there. It’s a lot like holding down the Shift key in Mac OS 9 to boot without extensions. If the problem is gone, you know it’s somehow specific to your user, which lets you limit your troubleshooting to files that could affect only one user on the system (basically, look in your ~/Library folder). If the problem still exists, you know it’s not limited to your user, and you should look higher up, such as in /Library and /System/Library).
If you can tell that a problem affects all users, it’s worth rebooting with the Shift key down to perform a Safe Boot and put Mac OS X into Safe Mode, which does a number of things. First, Safe Boot forces a disk check equivalent to using Disk Utility’s Repair Disk function or booting in single user mode by holding down Command-S at startup, then entering "fsck -fy" at the command line. Safe Boot also loads only required kernel extensions and runs only Apple-installed startup items in /Library/Startup Items and /System/Library/Startup Items (note that these startup items are different from login items, which are applications and documents opened at startup by each user). There’s no need to run in Safe Mode normally, but it’s a handy way to perform a disk check and verify that no third party kernel extensions or startup items are causing your problems.
The problems we encounter in Mac OS X may be new, but the ways we troubleshoot those problems remain much the same. All we need is the knowledge of how to apply those troubleshooting methods and the tools and techniques to make troubleshooting something anyone can do. Otherwise, many people will be echoing my father when he asked, "And just how would we have fixed this problem if you hadn’t been around?"
PayBITS: Are Adam’s troubleshooting tips in this article going
to save your bacon someday? Say thanks in advance via PayBITS!
Read more about PayBITS: <http://www.tidbits.com/paybits/>