With a small bit of scripting, I have created a cron task on my XO laptop to take pictures every minute and upload them to taskboy.com. You can see the result on my spycam page.
The camera is positioned in a second story window looking out on my amazing backyard. Will you see a deer? A cat? Chupacabra? You’ll have to keep coming back to find out!
The script on my XO looks like this:
#!/usr/bin/perl -- -*-cperl-*-
use strict;
use POSIX qw[strftime];
my $outfile="foo.png";
my $web_dir="/path/to/spy";
my $ssh_id = q[user@myhost.com];
my $remote_name=strftime("%Y-%m-%d_%H-%M-%S.png",
localtime());
my $delete_horizon=7;
# Take the picture
my $cmd = qq[gst-launch-0.10 v4l2src ! ffmpegcolorspace ]
. qq[! pngenc ! filesink location=$outfile ]
. qq[> /dev/null 2> /dev/null];
system($cmd);
# Is this picture mostly empty?
if (-s $outfile < 80_000) {
exit 1;
}
# Upload to taskboy
$cmd = qq[scp -q $outfile $ssh_id:$web_dir/$remote_name];
system($cmd);
# Remove old link ; relink to new file
$cmd = qq[ssh $ssh_id 'cd $web_dir && rm current.png;]
. qq[cd $web_dir && ln -s $remote_name current.png'];
system($cmd);
# Remove older pictures
$cmd = qq[ssh $ssh_id "find $web_dir -name '*.png' ]
. qq[-ctime +$delete_horizon -exec 'rm' '{}' ';'"];
system($cmd);
# Remove local file
unlink($outfile);
In other news, did you know the XO appears to have sshd running by default? Very useful for those of us that just want a command line anyway.
I am at the very pinnacle of 1997 technology.