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.]
Yesterday, Mac software developer Intego published a security memo on an exposure that exists with the ARDAgent application on OS X 10.4 and 10.5. ARDAgent runs when you use Screen Sharing in 10.5, and if you've enabled Remote Management in the System Preferences panel, but this exploit actually works when ARDAgent isn't running. As far as I know, this exploit was first published on the Apple page at Slashdot, though it probably appeared elsewhere earlier.
You can read the details of the exploit in the Slashdot entry, but basically, it relies on the fact that ARDAgent runs as root and can send AppleScript commands, such as do shell script, to the system it's running on. Given ARDAgent is running as root, any shell script launched by ARDAgent also runs as root, so such scripts run without prompting the user for their admin password and have full access to every file on the system. Obviously, this opens up a huge world of hacking possibilities. Unlike some other exploits, this one will also work on even a lowly guest account; an admin account is not required to take advantage of the security hole.
The good news is that this exposure needs to be exploited either by someone who already has access to your Mac, or by tricking you into downloading and running a program designed to look like something benevolent (known as a trojan horse) -- you can't be hacked by simply reading an email or visiting a malicious web page.
There are two ways to lessen and/or remove your exposure to this security hole.
Did you ever wish you had a better memory? I sure do. Last night I downloaded the keyboard shortcut application Spark, and set to creating shortcuts for my Scripts Menu. Today, I could remember one of the keyboard shortcuts, but not what it does.
Since I can't download a better memory, I tried to think of a quick way to have a cheat sheet readily available. I first tried a text file, but I would have to launch an application each time I wanted to look at it. I thought of embedding the text in a desktop picture, and decided that would be too boring.
What I hit on doing was to take a screenshot of just the text of my cheat sheet, make a new folder with the screenshot inside, and set my screenshot as the background of the folder. Now that folder lives minimized in my dock, and I can pop it open any time I need to 'remember' a keyboard shortcut.
I have my desktop images set to change every 30 minutes in random order. Sometimes the desktop will display an image that displayed earlier in the day, and I wanted a way to 'advance' the image easily. The following AppleScript will cause the desktop image to change, in whatever order you have set, each time it is run:
property theSwitch : 0
if theSwitch = 0 then
tell application "System Events"
tell current desktop
set change interval to 1801.0
set theSwitch to 1
tell application "System Events"
tell current desktop
set change interval to 1800.0
set theSwitch to 0
To maintain your current change interval, modify the change interval lines to reflect your interval, measured in seconds. Thus, for my 30-minute setting, I used 1801 and 1800 seconds. One hour would be 3601 and 3600, etc. For this script to work, you must have both Change Picture and Random Order enabled on the Desktop tab of the Desktop & Screen Saver System Preferences panel.
[robg adds: This works as described, and is also useful if you just don't happen to like whatever image was randomly chosen. Save the script as an application and drop it somewhere easy to access for a one-click solution. In my case, I put it into a Butler AppleScript action, and assigned it a keyboard shortcut for a no-click solution. I had to change the script somewhat to make it work in Butler, and my image actually toggles twice -- I basically had to remove all the theSwitch references and loops, leaving just two tell application loops.]
This is almost not a hint, just one of the smartest keyboard shortcuts I've come up with. Since I don't keep System Preferences in my Dock, I assigned Command-Option-; to launch it from the keyboard. To create the shortcut, open the Keyboard & Mouse System Preferences panel, click on the Keyboard Shortcuts tab, then click the plus sign. In the dialog that appears, leave Applications set to All Applications, set the Menu Title to Preferences..., and enter your desired shortcut in the Keyboard Shortcut box. I used Command-Option-; because it is quite close to the near-universal Command-, shortcut for opening individual application preferences. (Nice touch: in Leopard, the shortcut works immediately!)
[robg adds: This is a very basic hint, but it's a good reminder that the Apple Menu items can all be assigned keyboard shortcuts. For instance, if you move your dock around somewhat regularly, you can assign keyboard shortcuts for the Position on Left/Right/Bottom menu items. (I usually leave my dock at the bottom of the screen, but move it to the right side of my second monitor when using a full-screen app such as Final Cut Express.) Or assign a shortcut to Software Update, to make it easy to repeatedly check for new updates on a day when you're expecting one. Finally, it seems that (as of 10.5, at least), you can also assign keyboard shortcuts for locations in the Location menu. This older hint provided a workaround for older OS X releases, but when I tested a location this morning in 10.5, I was able to activate it via the keyboard shortcut I had assigned to it.]
This is a tutorial on how to automatically mount your FireWire drive to a custom mount point on OS X 10.5 Leopard. Variants will probably work with USB 2.0 drives, and internal SATA drives, and probably for IDE drives for G4 or G5 Macs. For this, you will need a little familiarity with the UNIX side of OS X, and more specifically, with the Terminal application. You will also need to know how to use vi, I think (though there's a very brief primer included in this hint). If that is beyond you, then you probably shouldn't be reading this.
Connect your FireWire drive and then log in to your favorite account to mount the FireWire drive.
Get the UUID of the drive in Terminal; MyFWDrive should be replaced with the name of your FireWire drive: diskutil info /Volumes/MyFWDrive. This command is going to spew out a lot of info, but the stuff you want is on the line that starts with Volume UUID. You want the long identifier afterwords, i.e. A740D396-D42D-3348-BD87-709342F87840.
In Terminal, make your mount point directory: sudo mkdir -p /my/mount/point
Edit your /etc/fstab file the OS X approved way with vifs (in Terminal): sudo vifs
/my/mount/point is the mount point you just created, and the string after UUID= is the UUID you found earlier. As a brief primer, here's how you do the above in vi. When vifs starts up, hit Shift-G to go to the end of the file. Hit the o key to go into insert mode on a new line. Paste in the above line (with changes as necessary, of course). Hit the the Escape key to get out of insert mode. Type in :wq to save and quit the vifs session (don't forget the : before the wq).
If you're like me, you tend to install several updates and/or software packages at once. When through, I like to eject all my mounted disk images with a simple
tell application "Finder"to eject (every disk whose ejectable is true and local volume is true and physical size < 1.0E+9)
Technically, this doesn't look for mounted DMGs but rather for ejectable, local (ie, non-network) disks with a size less than about 1GB. For most purposes, this will do the job. Copy and paste the above into Script Editor and save the resulting script in ~/Library/Scripts, then access it from the Scripts menu. Alternatively, add it to your tool bar, side bar, or assign it a hot key (with a third party hot key program), etc.
[robg adds: As this script only checks for size and ejectable status, it may have unintended results depending on your system configuration. When I ran it, it ejected one (but not both) of my mounted CDs, but didn't eject the Time Machine disk. I would expect mounted FireWire drives may also be ejected.]
Widget positions can get mixed when you display Dashboard using a lower display resolution than your usual resolution. In order to restore your widgest back to their previous state, you need to first save their current positions. So prior to changing resolutions , copy ~/Library » Preferences » com.apple.dashboard.plist to another location.
After doing whatever it is you wanted to do at a lower resolution, return to your original display resolution, then copy the backup you created back over the current file.
Finally, type killall Dock in Terminal to force the system to reload the original positions of your Dashboard widgets.