If you're reading this article, chances are good that you already have some of the devices on hand. If not, you can find cheap Bluetooth headsets and webcams on the Web. For instance, my headset is a Logitech Mobile Freedom that you can buy for $40. You can also use a regular headset if your laptop does not provide Bluetooth connectivity, but you'll have to deal with extra wires.
If you are using an iSight, you also have the option to use the built-in microphone with a regular pair of headphones for the audio feedback. I recommend choosing a backpack with a pocket for cell phones, which you can use to fix your iSight. Every iSight comes with a different stand, and the one for laptops and LCD screens fits just fine in the cell phone pocket.
Setting up the hardware is the easiest part. Make sure both the headset and the iSight are plugged into the PowerBook. When you close the lid, the PowerBook goes into sleep mode. You can easily work around this issue with a USB mouse. After the laptop is in sleep mode, just press any button on the mouse. In my case, I keep the mouse in my pocket, just in case the laptop goes to sleep again.
In order to take pictures, you'll have to use the Speech Commands tool bundled with Mac OS X. The first step is to enable it in the Speech preferences panel. In the first tab, entitled Speech Recognition, turn Speakable Items on and select the appropriate sound input device. By default, Speech Commands are activated by pressing a key. We obviously need another solution. Check the "Listen continuously with keyword" option and select "Keyword is Optional before commands."
The next step is to create our own speech command. Mac OS X makes it very easy. Create a new AppleScript in the folder ~/Library/Speech/Speakable Items. The name of the script defines the command you'll have to speak to activate it. In my case, I created the following AppleScript, with the name "Take Shot:"
tell application "EvoCam" capture now end tell delay 1 tell application "Finder" set theDate to current date set counter to time of theDate set the name of file "photo.jpg" to "photo" & counter & ".jpg" end tell say "Picture taken"
As you can see, I'm using EvoCam, a nice piece of shareware that Derrick Story introduced me to in his blog entry "Want to do more with an iSight than Chat?" You have 15 days for the trial version, or you can simply buy a license for $25. I set it so that pictures taken from the webcam are saved under the name "photo.jpg" on my desktop. There are many other applications out there that let you capture pictures from your webcam, and any of them will do fine, as long as you can interact with it from your AppleScript.
The rest of the script is pretty straightforward. I introduced a delay after the capture to be sure EvoCam has the time to write the file before AppleScript attempts to rename it. Without it, the script might fail with slower computers. Finally, I provide audio feedback with the internal command "say."
You can now pack your gear and hit the streets. If you notice people staring at you with wild eyes, just ignore them. Or better yet, take their picture!