Berry

Mobile DSL for party tricks
(2004-2005)
Berry logo
Berry was self-hosted cloud computing, it was a domain-specific language for party tricks, and it was a command-line interface for mobile computing characterized by an embarrassingly high response latency.
Before I upgraded to an iPhone, I spent six years and 50,000 minutes talking on a 2002 Kyocera cellphone. It wasn't a smartphone, but I made it act like one using a Mac hack that I wrote called Berry (MacBerry/HackBerry/BlackBerry). I'd send special commands from my phone to my computer via text message, which would do something interesting on my computer and text back the result. Berry let me use my candybar to view new/unread email ("berry unread"), look up events on my calendars ("berry calendar today"), save notes/reminders for later ("berry note 'remember this' using todo"), act as a remote control for my iTunes-based sound system ("berry music Bob Dylan using speakers"), host multi-party phone calls and make international calls ("berry skype Ari Bader-Natal using phone"), and lots more. Pretty good for an old candy-bar phone!
Berry was self-hosted cloud computing, it was a domain-specific language for party tricks, and it was a command-line interface for mobile computing characterized by an embarrassingly high response latency. In the end, Berry was an elaborate exercise in the design of an unnecessary and impractical -- but thoroughly elegant -- technology. I ultimately bought the iPhone and never looked back, but check out the screenshots below to see how elaborate this thing was!

Lots of ways to issue a Berry request. Decide whether you want to allow requests to come in via email, text messaging, IM, CLI, etc. I generally sent requests from my phone via text message.
Actions are specially-formatted Applescripts that use desktop applications and data to do something interesting.
Responders are the channels that get the output of a response back to the person who asked for it. The response channel generally matched the request channel (e.g. text message in, text message out), but alternative responders could be specified in the request.
A few examples of Berry's domain-specific language in action.
Mac niceties.