Mac Gotchas (for a Windows person)

Some things I wish I’d known when I switched from Windows XP to Mac OS X. Warning: crankiness ahead.

In January 2009 I switched from Windows XP to Mac OS X. I’d used Windows for years—even had a copy of Windows 1.0!—but this was my first experience with Mac OS. For the most part the transition has been easy, but there were a few minor problems.

  • Line endings. In Windows text files, lines end with a CR LF pair; in Mac OS X, lines end with LF. I had to go through all my Perl scripts (dozens of ’em) to change the line endings. This wasn’t a big deal; I had to go through them anyway to change the location of the Perl interpreter.

    What was a problem was a legacy application. In the old days, Mac apps used CR to separate lines. Most apps have been updated, but not all. It took me quite a while to figure out that Eudora 6.2.4 for Mac expected CR, not LF.

    (This problem bit me again when I made this page. The script I use for this purpose broke due to differing line endings.)

  • nouchg. The data from my old PC was backed up on an external hard disk, which I attached to the new Mac. I copied most of its contents to the Mac’s drive, but something screwy happened; some Web scripts run from my local copy of Apache would fail. Eventually I discovered the Web files I’d copied from the external hard drive had the nouchg flag set. ls -A didn’t reveal this; I only found it when I noticed a tiny lock in the lower corner of the icons for the files and folders in the Web directory. Even after fixing the problem, I’m still amazed by the paucity of tools for dealing with OS X’s extended file attributes. (Tip: man chflags)

  • Single app instances only! Unless an OS X app is designed to handle multiple documents, one is all you get. You can’t run multiple instances of the same application. So if your video playback software doesn’t allow you to view multiple files simultaneously, you’ll need to install another video player just to compare two videos.

  • Finder is pathetic. Select a folder far down in a directory tree. Type shift-command-N to create a new folder. Where’s the new folder? Not in the selected folder. No, it’s in the root of the tree! You have to drag the new folder to its intended location. While this would be annoying under any circumstances, it’s much more so when you’re dealing with folders that have dozens or hundreds of subfolders. Like, say, a music collection.

    The weird thing is that if you change from list view to column view, directories are created in the expected place. But it’s annoying to have to switch between views just to create a directory where you want.

    And what's with the completely inconsistent Finder, Open, and Save dialogs? I hate having to search each box to figure out how to get to a parent directory.

    I’ve only been using Mac OS X for a couple of months, but I’m already looking for a replacement for Finder. That’s sad.

  • Click to activate a window. Unlike Windows, the first mouseclick on an inactive window isn’t sent to the application. Instead, it activates the window. It takes a second click to actually tell the app to do something. I’m sure I’ll get used to this behavior eventually, but right now it keeps catching me. “Why isn’t this app doing something? I just clicked on it!”

    This explains one reason iTunes was so annoying on Windows: because it retained the first-click-activates behavior on an operating system where no other application behaved that way. Way to go, Apple programmers, for disregarding UI guidelines.

  • Trash is... different. In OS X, the trash can is only as large as your smallest volume, because trashed files from all volumes are consolidated into a single trash can. This makes using small flash drives annoying; when you empty the trash to free space on the flash drive, everything else in the trash disappears.

    Using Windows and its per-volume trash cans, I’ve learned to rely on the fact that files usually reside in the trash for months. OS X forces me to empty trash every few weeks. While that might offer a marginal increase in system performance, the window for recovering accidentally deleted files has shrunk by an order of magnitude.

    I could move unwanted files to a pre-trash staging directory, but (1) the OS doesn’t support that, and (2) every time I consider deleting a file, I’d have to decide whether it’s really safe to delete it, or whether I might need it again some day. Who wants to think about something so trivial? UI design principle: don't distract me from the task at hand.

  • Menu, menu, where’s the menu? Apple’s decision to split the menu bar from the document window was a benefit when Macs were first designed: no matter which document you were editing, just throw the mouse to the top of the screen and you’re at the menu. Jakob Nielsen would have been pleased.

    But those days are long ago, and today people use multiple displays. I tend to do my word processing on my second display. This is fine until I need to use the menu, whereupon I have to move the mouse to the top left of the primary display to find the menu. Yup, all menus are rooted in the same place, not at the top of the display containing the active document.

    At least on Windows, there’s a dedicated and easy-to-reach key that moves the focus to the menu. On OS X? You have to hit Ctrl-F2 or Ctrl-Fn-F2, depending on your setup. Keyboard remapping is the only sane solution. [Oh, good gravy. I just noticed that the dim/brighten display keys affect only the iMac’s monitor, not additional displays. That’s just sad.]

None of this stops me from using the Mac... it just makes the experience annoying.

One frustrating part of the switch was discovering that Eudora on the Mac—and every mail client I looked at—was unable to run an external script when a filter fired. I didn't want to give up this feature, since I use scripts to handle things like automatic whitelisting. Eventually I discovered launchd, OS X's replacement for cron. It lets you run a script when a folder changes. I set up a general 'automation' folder, with subfolders for each script I run. Now instead of Eudora running scripts, it copies messages to folders that launchd watches, and launchd runs the appropriate script. Seems to work.

Now I just need to find an OS X replacement for Lotus/IBM Word Pro. OpenOffice is close but not quite there. I may have to accept its minor deficiencies, though, for lack of a better alternative.

Last updated 15 August 2009
All contents ©2009 Mark L. Irons

Previous: Modifying Firefox’s Context Menus