A set in this photostream was just posted in a Yahoo! Group a subscibe to. The Wisconsin Historical Society has several hundred photos online.
Thanks to Hoodoo in the weirdwi group for posting the link.
A set in this photostream was just posted in a Yahoo! Group a subscibe to. The Wisconsin Historical Society has several hundred photos online.
Thanks to Hoodoo in the weirdwi group for posting the link.

Jack lost his first tooth last night! He was a little nervous about letting that sucker come out so it hung on for quite a while. I got home from work and he showed me how it moved in and out when he breathed. Finally, while Sarah was getting the kids a bedtime snack, Jack leaned over and spit it out into his hand. It finally just let go!. Sarah and I of course freaked out. Jack I think was expecting a bit more from the act of losing part of his body. However, there was no blood, and his head didn't explode or anything. The tooth fairy came in the night and I think now that he knows the deal Jack's other teeth won't hang for so long.
We got a Wii Fit this weekend and when first setting up a user one must go through a short process of entering their height, then they get weighed and they are told their BMI. Then you can start training and doing the games. They are really fun by the way. So Sarah and the kids get all set up. They are all in the normal
range form BMI, and as you can see in the image (click it to zoom), they are nice and skinny. Well, I set myself up and I am obese
apparently. As the BMI measurement arrow goes up my Mii balloons out to this Santa looking Mii you see before you. What the hell is this? I am not so rotund. I see an epidemic of nerd eating disorders coming.
Here’s my latest screenshot. A nice wood background and David Lanham’s Sticker icons.
Since most recent Macs are shipping with built-in iSights I thought it might be fun to put together a way to snap a picture at a certain time and then send it off somewhere.
Downloading the Requirements
Using two great free utilities, isightcapture, and sendEmail, in combination with a little script, and launchd I’m going to show you how I got this done. To get started you will need to download isightcapture, and sendEmail.
Installing the Tools
After you have downloaded both applications you need someplace to put them. I recommend /usr/local/bin/. This is a common location for programs installed by users. You don’t want to put stuff where OSX puts its files. Assuming you downloaded the applications to your Downloads folder do the following in a terminal (the first line may be unnecessary if the directory already exists):
$ sudo mkdir /usr/local/bin
$ cd ~/Downloads
$ hdiutil attach isightcapture1_1.dmg
$ sudo cp /Volumes/isightcapture1_1/isightcapture /usr/local/bin/
$ hdiutil detach /Volumes/isightcapture1_1/
$ tar zxvf sendEmail-v1.55.tar.gz
$ sudo cp sendEmail-v1.55/sendEmail /usr/local/bin/
Now you have the tools installed, you need to create the script that pulls them together.
Writing Your Script
I use the following BASH shell script to take the picture, and them email it. The email address I am sending it to is for a Web Gallery of my .Mac account. When the email is received it is automatically added to the gallery. While I use my .Mac account accout, Flickr allows you to post pictures via email, and Blogger allows you to post to your blog via email as well. These are just a couple examples, there are many more.
#!/bin/bash
SERVER="mail server here"
USER="username"
PASS="password"
FROM="from@address.com"
TO="to@address.com"
DATE=`date "+%Y-%m-%d %H:%M:%S"`
SUBJECT="$DATE"
MESSAGE=" "
FILE1="/tmp/$DATE.jpg"
FILE2=$(echo -n $FILE1 | sed -e "s/\:/qq/g")
/usr/local/bin/isightcapture "$FILE2"
/bin/mv "$FILE2" "$FILE1"
/usr/local/bin/sendEmail \
-f $FROM \
-t $TO \
-u "$SUBJECT" \
-m "$MESSAGE" \
-a "$FILE1" \
-s $SERVER \
-xu $USER \
-xp $PASS
rm "$FILE1"
So what’s going on here? Okay, the first five variables, SERVER, USER, PASS, FROM, and TO need to be set by you. SERVER is your outgoing mail server. The easiest way to get this is to look at your mail settings in Mail, or whatever you use for email. For .Mac it would be smtp.mac.com:587. USER and PASSWORD are just that, what you need to connect to the server. The FROM address should be something, I use my real email address so if for some reason the email bounces it will hopefully make it back to me and I will know it happened. TO is where you want the email to end up. You do not need to edit anything else. Save this file as isightcam.sh somewhere, /usr/local/bin/ is a good choice. You want to make sure the file is executable so from a terminal run the following:
$ sudo chmod +x /usr/local/bin/isightcam.sh
Testing Your Script
Now you want to make sure it worked. Again from a terminal, run your script:
$ /usr/local/bin/isightcam.sh
You should see the camera light go on as it takes your picture, then a notification that the email was sent successfully should appear. Assuming all is well edit your script and change the line with the sendEmail command:
From:
/usr/local/bin/sendEmail \
To (this just makes sendEmail not produce any output):
/usr/local/bin/sendEmail -q \
Automating the iSight
Now that our script is working the way we want let’s set up some automation. My choice is launchd. Its a bit more confusing than using a simple cron job, but one thing I really like about launchd is if my laptop is sleeping when the event is supposed to occur launchd will fire it off as soon as it can once my Mac wakes.
The following plist file needs to be created for our agent:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>net.sterlinganderson.isightcam</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/isightcam.sh</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<dict>
<key>Hour</key>
<integer>16</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</array>
</dict>
</plist>
Save this file as net.sterlinganderson.net.plist in ~/Library/LaunchAgents/. Note the following about this file.
To load it run the following:
$ launchctl load ~/Library/LaunchAgents/net.sterlinganderson.net.plist
Unloading:
$ launchctl unload ~/Library/LaunchAgents/net.sterlinganderson.net.plist
Finishing Up
That’s it. If you have any issues please feel free to comment.