I decided to take a stab at writing my own commands for Enso, the command interface by Humanized Inc. I really can’t say enough about how much I like this bit of software: it’s simple, elegant, and free.
Humanized released a “Developer Prototype” some time ago, and I’ve only just gotten off my lazy-ass to have a go with it. I decided that a handy, but relatively unambitious command to add to Enso’s growing list would be to use Skype to place a call. Simple idea, really — if I enter “skype home,” into Enso it should be able to find the Skype contact called “home” and place the call. For some added flair, it could also work by highlighting a phone number or Skype contact name and issuing the command without the second argument. (See the Enso explanation videos if this bit doesn’t make sense).
Enso extensions work by implementing an XML Remote Procedure Call (XML-RPC) service—basically a standard way of allowing software to interact without the programmer having to work out the gory details. This means, among other things, that Enso extensions can be written in any language that has an XML-RPC implementation. Naturally, being a Python junkie, this is my lingua of choice. How lucky that Humanized’s example code is written in Python! Even better, is the fact that some kind soul has already written a Python interface to Skype, called Skype4Py. It doesn’t get much better than this, folks.
In about 2 hours of poking (including distractions like trying out Adobe’s new Photoshop Express service), I’ve got Enso and the Skype API acknowledging one another’s existence (in the form of Enso reporting what Skype thinks my name is).
Hopefully tomorrow I’ll have a go at implementing a rudimentary call command.