CreativeApplications.Net reports innovation and catalogues
projects, tools and platforms relevant to the intersection of art,
media and technology. Read more here.
On the Creative Application Network employers within the creative and technology fields are able to connect to skilled and talented job-seekers worldwide through direct access to thousands of daily visitors.
Apps.CreativeApplications.Net is a site dedicated to the collection of Apps for Mac, iPhone and iPad created by artists around the globe and published by CreativeApplications.Net.
MindMeTo is a reminder service which makes use of Twitter to introduce the concept of social task management. We launched the service earlier this week and so far reception has been great. It was my first time working with Alexander Kohlhofer and Filip Visnjic, and I enjoyed the project immensely.
How MindMeTo works:
1. Follow mindmeto on Twitter mindmeto will quickly follow you back.
2. Add a reminder by tweeting: @mindmeto buy some milk tomorrow or, for private reminders, DM: d mindmeto buy some milk tomorrow
This will add “Buy some milk” to tomorrow’s schedule. (You can also add your reminder privately by sending a direct message.)
3. At the scheduled time mindmeto will send you a private direct message to “buy some milk“.
The mindmeto.com includes a page where all your reminders are listed. You can manage your reminders by deleting them or add new private ones.
The Process
Perhaps the most interesting aspect of working on projects such as MindMeTo is that problems will come along that totally knock you out of your comfort zone. In terms of web programming, it’s pretty easy to get yourself in a groove. You create countless websites which essentially use the same techniques, the same database and session abstraction classes, the same schema and queries, etc.
One of our major goals with MindMeTo was to make a service which was both quickly accessible, but also highly extensible. It became clear that, in order to allow the service to feel instantly familiar for new users, we would have to rely on a human-readable command structure. Take the following MindMeTo request as an example:
1
1
1
<span>@</span>mindmeto buy some cat food tomorrow.
Even if you had no comprehension of what MindMeTo was all about, you’d still understand the request. What’s really interesting is the social implications of running a reminder service through Twitter. Given that reminders can be set via @reply (as well as Direct Message and through our web interface), the request is already framed within a particular context. When put in context, the full command reads a little something like this:
Remind me to buy some cat food tomorrow
Now ask yourself how many times you’ve said something similar to a loved one, and hopefully you’ll see what I’m getting at. Reminders are largely a social construct, and I think it’s interesting to see how they’ll behave on a service like Twitter.
Of course, the problem with introducing a service to such a social environment is that people naturally expect to communicate as if they were talking to a person. Specifically when setting a time and date for reminders. To tackle this problem, I considered timestamps in two basic capacities: specific and vague. It’s possible to set the following reminder:
1
1
1
<span>@</span>mindmeto pickup milk on May16that<span>4</span><span>:</span>35pm
But it’s also possible to do something like this:
Perhaps the hardest aspect of developing a system devoid of any form of syntactical delimiters is that our parsing engine has to make an informed decision based on a number of potential results. Firstly, we must figure out where a reminder finishes and it’s timestamp begins. To do this, our parsing engine relies on what I call contextual flags. Let’s take another look at our two previous examples:
While they differ greatly in the level of detail used to set the reminder timestamps, both carry contextual flags that MindMeTo recognizes and acts upon. Contextual flags also (as you may have guessed) help us to put the timestamp in context. A contextual flag of ‘in’ suggests that the timestamp we’re receiving is relative to the current time, for example:
Is the system perfect? Far from it. But it doesn’t need to be. The beauty of introducing a human-readable is that we accept the possibility of error (to err, after all…). If you were to ask someone to remind you of something and they didn’t understand the request, they’d simply ask again. Provided the service fails gracefully, the user’s given another opportunity to express themselves. It’s our job to give them enough options so that hopefully they find a way that is most suitable for their personal usage.