The feedback on Minerva has been great. I’ve received a lot of positive comments and encouragement (mostly privately, but also some on the forums). There has also been some commentary that Minerva is too hard or actually impossible to implement. This is very important commentary. There is no sense in voting an app into the final three if it can’t actually be turned into code. I thank the judges and other bloggers for raising this point.
I’ve been doing some research and thinking in the last few days to determine how to make the seemingly impossible become possible. I’ve worked it out, and I have the solution! Minerva is possible to implement. We can do this!
Minerva has to interface with the following items: e-mail, instant messaging, calendars, remote devices (iPods, Blackberries, and so on), RSS feeds, and web message boards. To keep this simple to start, I’d like to keep the number of interfaced apps to a minimum and stick with mostly Apple products, as they are the most common. As others have noted, most of these apps have never been designed to work with other apps. They have their own data, their own databases, and so on. There are no APIs to call. Until there are, the approach is to use openly available work-arounds or write some Minerva-specific code. Here goes:
e-mail integration
Apple’s Mail.app stores its e-mails in files that are easily available in the Finder. Minerva can open these files and scan them just as you can with any text app (such as TextEdit, BBEdit, and so on). There’s no magic to having Minerva scan your e-mails.
Instant messaging integration
Apple’s iChat can log instant message conversations. If user’s want Minerva to watch their IMs then they have to turn on logging and then point Minerva to the log folder. Then, just like it does for e-mails, Minerva can scan the conversations. A preference in Minerva can have it delete any logs older than a specified time, so you won’t be wasting disk space. A friend pointed out to me that keeping the logs for a short period of time can be useful to those of us with short memories who may need to resurrect a conversation to check out what was said.
Contact/Address info
Apple’s Address Book remains the standard repository for all your personal contact information. It is accessible already to other apps, as evidenced by it’s existing integrations with Mail and iChat.
Calendar integration
Apple’s iCal is the natural choice here. I know that it is possible to access its information, as PocketMac does this already. When Leopard comes out, iCal 3 will allow for sharing calendars through iCal Server or any CalDAV compliant equivalent. Perfect!
Remote Devices integration
Synching with an iPod or a Blackberry or other device is best handled by that device’s dedicated app. However, Minerva doesn’t really need to exchange data with the other apps, it just needs to launch the synchronization process. That can be done by calling an Apple Script that loads the app, answers its typical prompts, and then optionally quits the app.
RSS Feeds
Minerva will need its own code for this. However, judging by the number of apps available that do this already, this doesn’t look like a major coding effort to create.
Web Message Boards
Minerva will need its own code for this. The code for finding, reading, storing, and then displaying messages is evidently fairly simple, judging by some of my developer buddies at work. These message boards are accessible on the web, and a stripped-down web browser can do this work. The tricky part is navigating the threads, as there are no standard navigation methods. Minerva could ship with navigation methods for several popular boards (such as the ones here at MyDreamApp, Apple’s own discussion boards, Yahoo’s financial stocks board, and so on. Other message boards could be implemented using a wizard to guide you in identifying the navigation methods, or using plug-ins. Those of you who own Harmony remote controls have experienced a very well-designed wizard that can support a wide variety of navigation styles.
So that’s the plan. There’s no barriers to implementation now.
I have a few new features to add to the list.
1. I liked Oliver Breidenbach’s idea of displaying a list of e-mails when you click a contact’s name. I’ll go it one further and display all e-mails in a thread if you click the subject. This can be extended to RSS articles and message board posts too.
2. Auto-calendar synching with approved contacts. My oldest son is the inspiration for this one. He e-mailed his marching band calendar to me and asked how the data in the .ICS file was going to get to my Blackberry. Minerva should be able to scan such attachments and if they come from an approved contact, open iCal and import the .ICS file. The next regularly scheduled synch will get the data to my Blackberry. SImilarly, Minerva should be able to send specified calendars to specified people. For example, I can create a Project Meeting calendar in iCal and tell Minerva to synch that specific calendar with the members of my project team. Minerva then exports the .ICS for that calendar and e-mails it to the contacts.
And yes, I *AM* working on mockups! I’ll have some posted tonight. I’ve made some up but I’m waiting on feedback.
— John



























