Anyone who has known me for a while knows that I hold an unhealthy interest in the realm of personal assistants. From software that emulates having one to services that replace one, I’ve looked at them all with a tentative curiosity. Sadly, none of them have lived up to what I perceive to be the ideal regarding a personal assistant. I even toyed around with the idea of making an “AI” on my computer to simulate a PA about 10 years ago. I wasn’t knowledgable or capable enough to do it (at the time), nor were digital forms of communication as prolific as they are today. I had all but forgotten about this little project of mine until recently when a guy named Chad Barraford rekindled my interest in this concept.
Chad started designing what he calls Project Jarvis a little over a year ago and it is forming into exactly what I set out to do a decade go. In some cases it surpasses anything I had imagined being able to do at that time. Essentially what he did was put together some code on a Mac Mini that is on IM, Twitter, email, etc. waiting for a command to be issued by Chad to which it will respond accordingly. He can ask it the weather where he’s at or anywhere else, the time, what’s in his Netflix queue, he can set alarms, adjust the lighting in his house, have it email people for him, and the list goes on. Its a very novel idea and it has inspired me to create Cortana, my very own “Digital Lifa Assistant” (a term coined by Chad in regards to his project).

A picture of Cortana from Halo 3
The name Jarvis comes from the AI construct designed by Tony Stark from the Iron Man movie (which is derived from the real life butler of Tony Stark in the comic books), so I figured my project needed to be equally aptly named. I settled on the lovely and loquacious Cortana from the Halo video game series. I still haven’t settled on her capabilities yet (I do have a few in mind), but that isn’t a very high priority just yet since I’m working on setting up the underlying framework before I proceed with any true functionality. Cortana will be built in C++, not so much because I think its the best language for it (though if I come up with anything crazy for her to do it may work out that way), but instead because I wanted to brush up on my C++ skills and figured this would be a good test of my ability.
So far Cortana can tell me the current time but only in Eastern Standard Time, and I’m working on setting it up so she can track my location via Google Latitude. I haven’t hooked her into any communication services yet, but I intend to have her talk via Twitter, Jabber, IRC, email, and eventually (possibly maybe) Skype.
One of the things I’d ultimately like to do is manage my Facebook account. What I mean to say is, I get annoyed by the group invites and goofy application requests and the event invitations for events that take place too far away from me, I have no interest in attending, or both, for me to go to. I’d love to be able to give Cortana the decision making process to reject all group and application requests outright, and then notify me of certain events, allowing me to decide on the spot whether I’ll be attending or not.
For more information on this project keep an eye here, or if you can’t stand the suspense – contact me!