In the last few weeks I have discovered a few services that take boring and menial tasks and turn them into automatic automated awesomeness. The general rule is: “If it is too difficult to do or remember, most people won’t do it.” Basically, any amount of complexity or repetition added to a task makes it easy to put off and not ever do, especially things we need to do, like letting your wife know when you’ll be home from work. Here’s where IFTTT and on{X} come into play. They allow normal people (non-programmers) to easily setup simple tasks that can automate some of our life both online and off.
IFTTT
If This Then That (IFTTT), is the simplest form of logic: if this event happens, then execute that action. If I Tweet, then post to Facebook. IFTTT is the biggest mashup of web services and APIs that I have ever seen, seriously check out their list of “Channels” as of this writing there are 50 different services you can connect to.
At its heart IFTTT is about making your digital life simpler by automating tasks. Some common examples include cross-posting a status update, backing up photos, will it rain tomorrow?, and letting people know when you finally posted to your blog. Among options you can have a notification sent via email, sms or push message when a trigger occurs, or have things happen passively and not need to do or see anything. This is especially useful for backing up my photos, pretty much anything I post online can be transferred to my Dropbox account and saved on my home computer. I don’t have to worry about it.
I setup a special recipe to email my dad, who refuses to use Facebook and doesn't have an Android or iPhone, so he can see the awesome pictures of my son, whenever I post them.
Recently IFTTT has integrated with the physical world, through the use of Belkin’s recently released set of WeMo sensor/switches. These sensors can be setup as triggers or actions, you can have your lights automatically turn on at 6AM, or off at 10PM. You can receive a notification when a switch has been triggered, or turn on/off a light with a text message. The possibilities are pretty amazing when you think about being able to trigger certain actions based on the whether outside. One recipe: If it gets cold, turn on my bedroom heater, lets you have a nice warm bed when you need it.
on{X}
on{X} was developed by Microsoft as an experiment in automating your life through your Android phone. This has the same concept as above, on X, or when X happens, do this. The key difference here is that it is using your phone and its many sensors to receive triggers, and perform actions: on{leave my house} turn off my wifi.
Recipes are written online and then pushed to your phone through the on{X} app which hooks into all of the hardware sensors, so you can detect your location and perform an action. For example, send my wife a text message when I leave work, this is great because I don’t have to remember to let her know that I left, it happens automatically and it comes from my phone.
They’ve recently updated their system to support NFC, proximity sensor, and a few other great enhancements. I’ve setup my phone to disable wifi when I leave home, launch Foursquare once I’ve been in a place for longer than 20 minutes, and to message my wife when I leave work. These have saved me time by having my phone do things automatically, things that I might forget or otherwise not have time to do. on{X} hasn’t been around as long as IFTTT so their list of pre-built recipes isn’t very long, but one of the great things, is that on{X} allows you to write your own recipes and share them with the community. I modified the “launch Foursquare” recipe to only trigger when I am outside the range of my home, since I don’t checkin at my house.
As with my previous post about push notifications, these put our phones to work for us, so we can keep up with our responsibilities, obligations, etc. and also make our lives a little more comfortable. Being able to setup these events and then receiving notice about actionable items helps to use my phone as a tool instead of just a huge distraction. Happy experimenting!
Push notifications have almost completely replaced text messaging and email notifications for me. I used to love text message reminders, but now I get annoyed that I cannot take action on those items. For example, I get a message from twitter, the most I can do is click a link. When I get a push notification from twitter I can read it, then dismiss, or I can touch it, get the full twitter app experience and find out more about that particular tweet, user, hashtags or people mentioned. This gives me a lot of power that a simple text message cannot.
Bank of America recently released an update to their Android app that allows replacing the standard email and text message notifications with push notifications. This is great news since I can change the frequency and/or conditions of the notification without having to load up their site in a full desktop browser. They’ve even introduced their new BankAmeriDeals (or whatever it is called) so that I can receive push notifications with opportunities to save money. This last feature may get obnoxious after a few days, so we’ll see how long I keep it on.
Alarm.com is another example of a company using the full-features of a smartphone to benefit their customers. I have an alarm system that allows me to arm/disarm and change the thermostat in my house while I am away from it. They recently introduced a feature that allows me to set a notification at a certain time at night to remind me to arm my house, this is great as I often forget to arm the house (which completely defeats the purpose of the system). Another great feature is geofencing, I have the app setup to notify me when I get outside a certain radius from my house, to remind me to arm the house. This even works with 2 phones, you can set the trigger to only notify you if BOTH phones are a certain distance from the house, it won’t bother either if one of us is still home. This is one of the coolest features to me, using my phone’s built-in hardware to help make my life better, easier, safer, etc.
Slice can be setup to scan your email and pick out purchases. This allows the app to notify you when your packages are being shipped, in transit or when they have been delivered. I have been surprised by this app many times when I didn’t hear a delivery truck or see anything in my mailbox. The first time this happened, I had forgotten about ordering anything, I got a push notification that there was a package on my doorstep, I looked at the message with a puzzled look, walked to my door and there WAS a package waiting for me. Awesome!
Another great advantage to push over text messaging is that I am not limited to a single device. I carry 2 phones around one for work (iPhone 4), one personal (T-Mobile G2). As a result I have a lot of application overlap, this is on purpose, since if one phone is dead, or out of service, I can pick up the other and continue my conversation (Facebook/Google+ Messaging). I normally have notifications for personal things (Facebook/Twitter/etc) turned off on my work phone, so that I don’t get a crazy amount of buzzing in my pocket when both phones go off simultaneously, though it is incredibly cool to get notifications in realtime on both devices.
I wish the Mint.com app would implement push notifications, I despise getting their email notifications now that I have tasted the goodness that is push. One disadvantage to push messages/notifications, I can’t go back and search through them, such as with email notifications, granted, I usually delete most notifications anyway, this is a minor issue.
I am glad that application developers and the services world as a whole has noticed the advantage to push notifications. I do wish there was a backup method such as text, for those rare times when I am in an area of poor coverage and limited or no internet. At the same time, it’s okay to be off the grid for a while.
I had the opportunity to write up a presentation about the Controller part of ASP.NET MVC. With Pro ASP.NET MVC 3 as my guide I whipped up this presentation and some sample code.Feel free to download/read/learn/look at it as you please.
One of my favorite things about controllers is the ability to return pretty much any type of content that you desire, files, xml, json, whatever. This makes controllers incredibly versatile and allows the developers to give the users power over what they get back (when they want to allow it).
Enjoy.