Like many of you, I keep lots of personal information on my laptop that I would like to keep private in case I lose physical control of the computer (theft, or more likely these days, sudden seizure by the government).
There are a few ways to accomplish on-the-fly encryption with OS X, of course, but none of them really fit my needs. FileVault has not been known to be exceptionally reliable (although I've never tried it in Leopard) and is totally unconfigurable. Whole disk encryption is a little overkill for me, so I don't feel like eating the CPU overhead that it entails. On the other end of the spectrum, casual security like an Open Firmware / EFI password, and a strong login password are easily defeated, and only deter those with no interest in your data anyway.
What I really want is a way to encrypt just a certain set of private data (like my email in Mail.app, contacts in Address Book, and calendars in iCal), with as little inconvenience as possible. The best solution? How about an encrypted sparse disk image that mounts and unmounts on login/logout? With symbolic links in the proper places, Mail, Address Book, and iCal are none the wiser, and you can be reasonably assured that your private data will stay secure.
Note: This process is a little involved. Compromises can be made, however, and the general method is valuable, so read on!
After a version of OS X matures, it can be a pain to sit through several rounds of updates if you need to rebuild a machine from scratch. You install one set of updates, the machine restarts, and then the next set of updates pops-up. After a few cycles, this gets really old.
To work around that problem, I created a shell script that runs Software Update, installs all available updates, reboots, and repeats the process until there are no more updates left.
[robg adds: I haven't tested this one yet, but I've got it marked for the next time I go through this process. To make it work, remember to make it executable: chmod a+x initswupdater.sh. Update: Please read the comments for more-thorough installation and usage instructions.]
The services menu is available in every application, although the options within it are only available when copy or paste are active (depending on whether the service takes input, produces output, or both). Because this menu is nearly always accessible, it is possible to assign a shortcut to an item in it that will almost always be accessible. This method is not always available, but the upside is that there is not third party daemon always running in the background listening for keys.
In this example, the shortcut starts the screensaver, but it would be equally simple to start an application. To make this work, you'll need the donationware application ThisService, which creates a service from any script.
Open the Produces output.scpt from the AppleScript starting points that come with ThisService. The 'produces output' means the application is available without having something selected to copy. Insert the desired AppleScript code between on process() and end process, and save it (probably as a new name in a new location). In this example the whole script will look like this:
on process()
tell application "ScreenSaverEngine"
activate
end tell
end process
Open ThisService, name your service, pick the script you created, select 'Produces output,' and assign your shortcut. (I used F6, which would not work from ThisService, but you can assign it later through System Preferences.) Now just make sure the focus is somewhere that would accept pasting, and test your service.
The zoom tool (Control and mouse wheel scroll) is normally set to follow the mouse, but sometimes I want both a zoomed-in Flash window and no cursor in the way. In addition to the methods noted this hint that basically hide the cursor, I came across one probably bug-borne trick which allows one to move the cursor without shifting the screen.
First, you zoom in just a little bit, then wait. After a brief delay, the zoom feature will give up and pop back to regular full-screen mode. (The keyboard zoom shortcut, Command-Option-plus, zooms too coarsely to do this -- you must use Control and the mouse wheel.)
After that, zoom back in heartily, and the screen will not doggedly track the mouse anymore! Zooming in and out is still biased by the mouse position, so you can walk the screen a little bit, if need be. Zooming fully back out returns you to normal behavior.
2br
Another way to move the cursor while in zoomed mode without shifting the screen is with a four-button mouse. On any mouse with more than three buttons, you can hold down an extra button, and move the cursor without shifting the zoom display.
I had OpenStep running in a virtual machine for quite a long time before I got the idea to extract and convert the Ni.snd to something that OS X can play back.
For those who don't know: OpenStep had many of the same system sounds found in today's OS X. However, OS X lacks the most important one from OpenStep -- it's the "Ni" sound from Monty Python's Knights who say Ni. This hint presupposes that you have access to an OpenStep installation, as I don't know if the sound was included with NextStep.
In OpenStep, find the sound file, which is located at /NextLibrary/Sounds/Ni.snd
Somehow, move the file over to your Mac. Since I use a virtual machine, I first tried to use NFS for that, but failed miserably. So I installed OmniWeb 3 and mailed the sound file to myself. Astonishing that the webmail site (GMX) even worked in the old browser, but it did!
On your Mac, put Ni.snd in /System » Library » Sounds (authentication required!).
You can now select Ni in System Preferences » Sound, and enjoy the greatest warning sound ever made!
[robg adds: I would save the file in either the top-level Library » Sounds folder, or my user's Library » Sounds folder, instead of in the System folder. Sounds added to either spot should be visible in the Sound System Preferences panel. I'm sure enterprising readers could use a web search engine to find a "Ni" sound effect file without having to first install OpenStep in a virtual machine. The general version of this hint is that it appears any ".snd" file from OpenStep (and probably NextStep) works natively in OS X.]
If, like me, you find the default white zip file icon in 10.5 bland and boring, then it is quite easy to change it if you are using the built-in Archive Utility:
Open up Finder and go to /System/Library/CoreServices.
Find the Archive Utility, Control-click on it and select Show Package Contents from the pop-up menu.
Navigate into Contents » Resources.
Make a backup copy of bah-zip.icns (or any of the other compressed icons you'd like to change) by dragging the file to a folder in your user's home folder. The system will create a copy.
Find an icon you'd like to use, and copy it into this folder, renaming it to bah-zip.icns. I chose to copy the nice green bah.icns file from this same directory, renamed it to bah-zip.icns, and then copied it back in. (You will need to enter your admin password to modify this folder.)
Restart Finder or logout/login, and you will now have a nice customized zip icon for all your zip files.
[robg adds: As you're modifying a system-owned file, future system updates may overwrite your changes, of course. I haven't tested this one. If you're using 10.4, this hint should also work, though the name of the program to modify is BOMArchiveHelper, not Archive Utility. I haven't tested this one.]
What hasn't so far been addressed is the logs themselves. I got very interested in these as I suddenly (under 10.4) couldn't account for 5GB on my hard disk. It turns out that the primary culprit was the daily.out log file that had simply grown out of all proportions. The periodic logs are never cleaned up, and thus just grow in size each and every time the periodic maintenance tasks are run. For example:
I did a clean install of 10.5 Leopard in November 2007, so in a little over half a year, the daily.out log has grown in size to 0.5GB. So in the time before 10.6 Snow Leopard comes out, it'll grow to about 1.5GB in size. I do know that hard drive space is cheap these days, but still...
If you need to remember what a screen message looks like -- whether it is a warning, a pop-up, or even a setting you don't want to forget -- try this.
First, use Command-Shift-4 to grab a screenshot of the region (press the Space Bar to just capture the window if you want). OK, a lot of users know that already. However, once you've grabbed the screenshot, slip it into iPhoto, and create an album named something like Warnings or Apple Messages, and you've created your own memory reminder tool.
I have used this trick for mail settings, internet connection speed tests, my wireless settings, questions I have when I go to a One on One appointment, and general reminders of other various settings. Try it, and you'll never again have to guess "Now what did it say?"
Feeling conned by the promised "push" technology of MobileMe, specifically when making changes on your Mac, only to find out that it will not push, but instead, sync at 15-minute (60 minutes in 10.4.11) intervals? I found the .plist file that controls the "Automatic" sync interval for MobileMe, and changed it from 15 minutes to 1 minute. The file is located in ~/Library » Preferences » ByHost » com.apple.DotMacSync.your_MAC_address.plist.
Open this file in Property List Editor, find the AutoSyncInterval key, and then set it to the number of minutes after which you want it to sync with the server. I have it set to 1 right now, and it syncs every minute which is good enough for me at the moment. Hopefully this will be of value to anyone who needs something more immediate than a 15-minute sync, and doesn't want to bother with Manual sync.
[robg adds: I was disappointed to read that the 15-minute sync from a Mac to MobileMe/iPhone is a feature, not a bug. This hint seems to work well to create much more of a true push from your local Mac to the cloud; I tested it with both 1-minute and 5-minute settings, and it seemed to work just fine, and my setting survived even after opening and working with the MobileMe System Preferences panel. Obviously, though, if you use the Synchronize pop-up to change the sync interval, your settings will be overridden.]
Think you emptied the trash on your external drive? Even if you did, there may be large amounts of trash still lurking on external or network drives that has not been emptied. As most folks know, the trash is segregated by user ID, and when you empty the trash, it only empties your user's trash -- even on FireWire disks.
If you delete a user's account on your computer, the system won't remove the trash for that user ID on the external or network drive. This can also happen if you have ever shared a disk between two computers. Since the UIDs on one computer may not be the same as the other, trashes can be created by one computer that cannot be emptied by the other. This can even happen if your username is the same on both computers, but your UIDs (e.g. 501 an 502) are different.
Thus periodically one needs to manually remove the trash like this, in Terminal:
Replace "my_external_disk" is the name of the disk from which you want to remove all trash from all users. (The quotes are used in case of spaces in the disk name.) I noticed this because I had lost about one-third of my disk space to this phenomena, even though I only had one user account on my present computer.
[robg adds: Be very careful with the rm -rf command -- one little typo could be devastating. To make sure you're deleting the right files first, consider running it with the -i option, which will ask you to confirm each file deletion before it happens.]