Using the iSight for Adium / iChat
I have a lovely shiny office MacBook Pro sitting in front of me, and in the
middle of the top of the screen is this little annoying black square. It's an
iSight camera, and it can always see me.
It's annoying for two reasons. Firstly, it can always see me. There's a little
light to tell you that it's on, but it's perfectly capable of blipping on
briefly without you noticing. But mostly it's annoying because I hate
the thought of such a high-tech piece of technology just going to waste up there.
I really have no real use for this thing at all - I don't obsessively
catalogue my book collection, I don't hold
frequent multi-person videoconference
sessions, and I already have a
camera. I've also seen enough PhotoBooth
output to last me my ENTIRE LIFE.
But merely having no good reason isn't a good enough reason to stop me, so I
came up with a use for it.
DuckCall is an application that runs in
the background, and takes a picture of you every 30 seconds using the iSight.
Then it'll set this picture to be your iChat or Adium 'status picture' thing -
the little picture of your head that other people see in their contact lists.
Setting away messages is so web1.0 - when I'm not at my computer, you know it,
because you can't see me. It'll also try to be smart - it won't do
anything if neither app is running, for instance.
Naturally, it's not perfect. For the Adium stuff to work, you need to be using
a recentish beta - the ones with the
single buddy icon shared between services. And it has a nice little
todo list, like all my projects.
The biggest thing wrong with it, though, is the Frankenstein nature of the thing. I write my crazy application prototypes in PyObjC because it's very easy to get something working. But there are no Cocoa bindings for reading from the iSight (why??) so I shell out to an external tool and save a file from the iSight to disk. Then I use AppleScript to load the file from disk and set the icon of either of the IM apps that happen to be running (or both, I guess, if you're weird). Using Python as the wrapper makes the app about 3 megabytes larger than it really should be. If someone wants to re-implement it in Objective C, that would be good.. :-)
Weirdy, I'm not sure if I like the philosophy of the app. I keep getting scared that it'll take photos of me at bad times. Given my stated reluctance to publicise my life it's odd that I even considered writing this thing. I comfort myself with the thought that no matter how stupid I look in this photo, it'll be gone in 30 seconds, and most people will never see it...
Get it here and tell me what you think..