While trying to test this hint earlier today, I was somewhat dismayed to find that speech recognition appeared to be broken on my G5 -- I could enable speech recognition, but the Speech Commands window (which you can display by clicking the small triangle at the bottom of the floating Speech bubble) was completely blank, and the computer wouldn't respond to any spoken commands. Under some deadline pressure, I switched to the PowerBook, where speech was working fine, to test the hint.
After getting today's hints up, though, I wanted to solve this problem -- not because I use speech recognition a lot, but because I don't like it when parts of my machine don't seem to be working correctly. My first stop was Apple's Knowledge Base, which has become a fairly good troubleshooting resource. A search on blank speech commands let me to an article called Speech Recognition - computer does not respond to spoken commands. Though a number of possible causes are listed, it was the last one that caught my eye:
5. Mac OS X 10.4 or later only: Check Address Book entries.
In Speech Recognition preferences, click the Commands tab. Select Address Book in the command set and click Configure. Any contacts named "(null)" could lead to this issue--these are contacts you have designated as a Company but did not enter a name for. To fix this, open Address Book and ensure that contacts designated as a Company have a Company name. If you do not need to make this contact speakable, you can deselect the box next to this contact in the Address Book Configuration pane of Speech Recognition preferences.
And that's exactly what was causing my problem. My Cingular phone, when synced with my Address Book, had created a number of "company" entries for things like billing balance, customer service, etc. All of these had blank company fields. As soon as I unchecked these null items in the Address Book configuration area, my speakable items instantly reappeared. Since this was a bit tricky to diagnose, I thought it worth a reference here...
Apparently, versions of Mac OS X before Tiger used to write Console logs to a directory named for your short user name:
i.e. shortu is the user's short name. Apparently in Tiger, console logs are written to a directory named for your user ID number instead:
However, Tiger does not delete the old console logs or directories, even though they are no longer being used. So if you updated to Tiger from a previous version of Mac OS X, you can save some hard drive space by deleting the /Library -> Logs -> Console -> shortusername directories for all of your users. Don't believe me? Try typing this in the terminal:
head -1 /Library/Logs/Console/501/console.log
The 501 user ID is assigned to the first account that was set up by the OS, and "newer" users are numbered higher: 502, 503, 504, etc. After that, try this:
head -1 /Library/Logs/Console/your_shortusername/console.log
These commands will tell you which OS versions wrote each file.
I was looking for a way to restore a custom number formatting on my German localization under Tiger, as I am not satisfied that I cannot change the decimal separator in the way I want (in Germany, we use a comma as the standard decimal separator). I need this when I want Excel to recognize the dot separator on drag-and-drop text files, which I oftentimes work with, onto the dock icon.
I found a comment by macosxphile to an anonymous hint called Make 24-hour time work in iCal that contained an easy solution: Copy the Localization.prefPane from a Panther (10.3) system to a Tiger system (back up the original Tiger Localization.prefPane first). For geeks, here's a more detailed method: Control-click on Panther's Localization.prefPane (in /System -> Library -> Preference Panes), select "Show Package Contents" from the pop-up menu, and navigate to /Contents/Resources. Next, copy the IntlFormats.prefPane to the same location in Tiger's Localization.prefPane (as usual: backup the original one in advance).
The next time you start the Localization (International) preferences, you will see Panther's preferences panel, and you are able to set your own separator the way you want them (you can of course modify other things, too). Thanks to macosxphile for giving this brilliant hint!
So far so good. But how do you change the format by not destroying your Tiger look and feel?
I use a Logitech wireless keyboard and mouse (MX700) connected to a Belkin KVM switch to control both a WinXP Pro Dell I8000 laptop and an Apple PowerBook 17 1.67 GHz. Since the Logitech driver for the Mac requires the mouse to be directly connected, it does not function to customize the buttons for me, and the mouse acts as a generic two-button mouse with scroll -- that is, the express up/down buttons, the app switch button, and the side, back, and forward buttons are not recognized.
I just purchased a Mighty Mouse to have in my PowerBook's travel backpack and installed the driver. Unfortunately, the Mighty Mouse control panel only shows up when the Mighty Mouse is actually plugged in. However, after plugging in the Mighty Mouse and setting the programmable buttons to my liking, I then unplugged the Mighty Mouse and put it in my bag for when I travel.
Upon returning to my MX700 mouse, I noticed that the scroll click activated Exposé's All Windows mode, and the back button activated Dashboard -- just as I had ajusted them to do in the Mighty Mouse driver! This is the first time these buttons actually have done anything for me, since the mouse is connected through the KVM. The express up and down, app switcher, and forward buttons still do not do anything. I assume this is so since there are no correspoding equivalents on the Mighty Mouse.
Thought I'd share the love in case anyone else is looking to get more out of their multi-button mouse without the ability to use its own native driver.
If you haven't yet realized just how useful burn folders are in Tiger, this hint should do the trick for you.
Though there's a fair amount of behind-the-scenes stuff that goes on to handle burn folders, all they are to the filesystem are normal folders whose names end in .fpbf. Unfortunately, you can't create (or rename) folders with that extension from the Finder (except, of course, by using the GUI to explicitly create a burn folder). However, there's absolutely nothing preventing you from doing so in Terminal.
Creating a burn folder from Terminal is trivial, but not perhaps so exciting. All you do is type:
mkdir "Your Name Here.fpbf"
Replace Your Name Here with the name you'd like to apply to the new burn folder, hit Return, and you'll have a new burn folder, located in whatever directory you were in when you ran the command.
What is exciting is turning a normal folder into a burn folder, burning a disc, and then turning the folder back into a normal folder. First, turn the normal folder into a burnable folder:
mv "Your Name Here" "Your Name Here.fpbf"
In this case, Your Name Here is the name of the existing folder to convert into a burnable folder. After you burn the folder, use this command to switch it back:
mv "Your Name Here.fpbf" "Your Name Here"
There's no need to mess around with aliases or the like; burn folders are happy to burn real files just as well as aliases. I'm sure this would be a trivial thing for some enterprising soul to put into a script for the Finder's contextual menu for those who don't care for Terminal. I'd love to see a future version of OS X do away with the concept of burn folders altogether and simply make every folder burnable. (Anybody at Apple reading this?). In the interim, though, this is a good workaround.
[robg adds: I tried to make an Automator action to handle the conversion to/from a burnable folder, but ran into a slight snag: Automator won't remove the extension from the folder. The command to add the extension runs fine in Automator (so I have a usable 'Make Burnable' action), but the command to remove the extension does not -- even though it works perfectly in the Terminal. I've sent this glitch in to the Automator team, and I'll post back if I find a successful workaround. (I had Doug Adams try an AppleScript to remove the extension, but it also failed).]
November 1 Update: OS X 10.4.3 breaks the Automator actions discussed in this hint and comments. It seems, but I have yet to prove it completely, that "get specified Finder items" now grabs the contents of a folder, rather than the folder itself.]
When I first heard about Automator, it sounded wonderful, but when I got a chance to actually use it, it was a bit of a let-down. Automator was just too simple and limited for my needs. Every time I tried to create a workflow, I felt like I was experiencing the programmer's equivalent of riding around in a bumper car.
But thanks to various Mac OS X Hints, such as this one, I've learned that Automator is actually very well suited for extending the Finder with new capabilities. For example, Java developers like myself often need to extract the contents of a JAR file. Here's how to use Automator to create a Finder plug-in that does just that:
Launch Automator, select the Finder Library entry, and then drag the Get Selected Finder Items Action to the work area.
Select the Automator library and drag the Run Shell Script Action to the work area.
Change the Pass Input value to as arguments.
Set the script text to the following:
cd `dirname "$1"`
mkdir `basename "$1" .jar`
cd `basename "$1" .jar`
jar xf "$1"
Save the workflow to the ~/Library -> Workflows -> Applications -> Finder directory (i.e. use File: Save As and make sure Finder is set as the type in the pop-up) as "Extract JAR File."
You will now be able to right-click (control-click if you're a single-button mouser) a JAR file in the Finder and select Automator > Extract JAR File to extract it.
At the risk of submitting the obvious ... I had a hard time when first using Tiger's Smart Folders feature to just find recent items in my Freelance folder. I created a new Smart Folder, but just couldn't find any search criteria to limit things to a certain folder.
The solution? First navigate to the folder to which you want to limit the search. Hit Command-F, or in the menu, go to File -> Find. The "tab bar" at the top of the search criteria window now shows the folder you are currently in as one of the options. Select it, and then you can (as always) specify the other search criteria to your liking. Hit the Save button, and you now have a Smart Folder restricted to a specific folder (and its sub-folders).
[robg adds: You can do this directly from the New Smart Folder window, but it's quite time consuming -- click the Others... button and drag your destination folder into the list of locations, then uncheck all the others. The problem with this is that the changes you make to the Others list will remain in force -- the next time you create a Smart Folder, the Others pop-up will look just like you left it. So the above method is the best way to create a folder-specific Smart Folder. And yes, this is a fairly obvious hint, but not everyone may be aware of it. I find the behavior a bit confusing, as you have to remember to first move to the folder you wish to search, then create the Smart Folder...]
Apple's Automator Action Installer template (available from Apple's Installation Instructions for Developers page) is the recommended way to ship custom actions, and it works pretty well. However, one annoyance is its tendency to hide active apps when it runs. I'm sure that the intent is benign, but it's a little annoying in practice, as the user watches all of their open window seemingly disappear.
Luckily, the fix is easy:
Right- or control-click on the installer package, and select Show Package Contents from the pop-up menu.
Navigate to Contents/Resources/Scripts, and open main.scpt in the Script Editor.
Comment out the line that starts with set visible of (every process whose.... In the version of the installer I have, this is line 34.
Save the script.
Open applications should now no longer mysteriously disappear when the installer runs. Thanks to Rob for suggesting this bit of polish (as discovered when testing my Automator Action to delete files hint).
One of the holes in Automator's action lineup is an action which will delete files -- not move them to the trash, but actually delete them altogether. So I decided to write an action that does just that.
Delete Files.action is an open source (Lesser GPL licensed) program that provides an Automator action that shows up in the Finder entry in the Library column, and accepts "Files/Folders" as input. One can select from four delete types (simple unlink, 1-pass wipe, 7-pass wipe, 35-pass wipe), can instruct it to ignore errors, and can customize the optional confirmation dialog.
The action is free to use; feel free to comment on it here or drop me an email...
[robg adds: I tested this out, and it works as described. After installing the new action, you'll find a folder on your desktop with three Automator plug-ins for the Finder. Drag some/all of them to you user's Library -> Workflows -> Applications -> Finder folder, and you'll have them available in the Finder's Automator contextual menu. This code is also a great way to see how to create an Automator action of your own, as the source is included, so you can take a look at the AppleScript that drives the action.]
I have just started using Burn Folders under Mac OS X 10.4. I had previously dismissed them as similar in concept to the old Mac OS 9 style burn folders -- which basically just created a hidden disk image, then burned the disk image to media. IMHO, this was a long way of doing a pretty simple thing. But after reading some comments about Burn Folders and how they used aliases, I thought I would give it a try. So this weekend I started experimenting with Burn Folders, and found them to be quite useful.
Except for one little thing I discovered quite by accident. I had created a Burn Folder and dropped a few other directories into the Burn Folder, which in turn had a few directories inside them. I realized just before I decide to burn the Burn Folder that I really didn't want to burn a few of these sub-directories. So I proceeded to go into the directories in the Burn Folder and delete the items -- thinking I was just deleting aliases to the items (as their parents are). Luckily, I decided to investigate before emptying the trash. Turns out that only the top level directories you drag into the Burn Folder are actually aliases. If you dig into those and start tinkering, you are actually modifying the original files on disk.
Now if you think about it, this is probably the way it should be, and it is the way the rest of the system works with regard to aliases. I was just a little stunned that I was able to so easily delete data without a warning or anything. Maybe Apple should somehow add a trigger mechanism to the Burn Folders that alerts the user that any modifications you make to items inside the main aliases is actually modifying the real data files/directories.
[robg adds: The behavior of Burn Folders can be a bit disconcerting, but it's definitely normal practice for folder aliases in general: once you double-click an alias folder, you switch into the actual directory (since the alias itself is just a pointer to that folder). Relative to Burn Folders, Apple tries to provide some visual guidance to help. When you're in the top-level of a Burn Folder, you'll see this header in the window (in list, icon, or column-view mode):
As soon as you navigate into any folder within the Burn Folder, though, the header will disappear, leaving a normal-looking window. In column view, this is quite obvious, as everything in the window jumps up when the header vanishes. It's not quite so obvious, though, when working with list or icon view, or if you have the Finder open a new window each time you open a folder. You can always check where you are in the directory structure by command-clicking on the title area of the window (this will show a drop-down menu with the full path to your current location).
I'm not sure how Apple could do this much better, as a pop-up warning every time you modified something after visiting a Burn Folder could get quite annoying. But this hint is a good heads-up, especially for those new to Burn Folders, to exercise caution when working with aliases you've placed into said folders.]