Wolfram Blog
Bernat Espigulé-Pons

Track Everything with the Wolfram Data Drop IFTTT Channel!

September 14, 2015 — Bernat Espigulé-Pons, Consultant, Technical Communications and Strategy Group

In March, we launched the Wolfram Data Drop, an open service that makes it easy to accumulate data of any kind, from anywhere—setting it up for immediate computation, visualization, analysis, querying, or other operations. Now we are announcing the release of the Wolfram Data Drop Channel, which lets you track and accumulate data from your everyday apps, devices, and services available in IFTTT wherever and whenever you want.

Wolfram Data Drop Channel in IFTTT

IFTTT—which stands for “if this then that”—is a service that coordinates apps and other services, triggering one to do something when something else happens in another. IFTTT products and apps are organized in Channels of triggers and actions that are used to create personalized recipes and buttons on your mobile devices. A typical recipe could be “If anyone posts a new Instagram photo from Central Park, then add the photo’s URL to a databin”:

Example of IFTTT-If this then that

The advantage of using the Wolfram Data Drop Channel is that it makes it easy to perform sophisticated analysis of data collected by IFTTT recipes with the Wolfram Language. Let’s say that we would like to know what’s in the images from the above recipe. It only takes a line of code to achieve this, thanks to ImageIdentify:

Using ImageIdentiy with IFTTT recipe

At the Wolfram Innovation Summer School 2015, Colt Bradley set up several recipes to capture images taken from the world’s top ten universities. With this data, he was able to compute the average dominant colors of several campuses and tweet the results in an automated way using ServiceConnect to Twitter. Here is the result obtained for Cambridge (notice that the trending hashtags were computed from the images’ captions collected with IFTTT):

Twitter post of Dominant Colors for University of Cambridge

You can create two kinds of recipes with IFTTT: DO Recipes and IF Recipes.

DO recipes and IF recipes

DO Recipes run with a single tap, letting you create your own personalized Button, Camera, or Notepad. DO apps are available for iOS and Android.

DO apps available for iOS and Android

With a DO Recipe, you can make a button on your phone that records your GeoPosition in a databin. With that data, you can compute things like the distance and elevation between the last two entries you added:

Computing distance and elevation between two entries

Or make a map of where you’ve been:

Map of where you have been

IF Recipes run in the background, creating connections according to the pattern “if this then that”. “This” is represented by the Trigger Channel, and “that” is represented by the Action Channel. For example, here’s a recipe to add new posts in AskReddit to a databin:

Recipe to add new posts to AskReddit

With such an IF Recipe, you could build an entire website using the Wolfram Language, which is exactly what Qi Xie, another student from the Wolfram Innovation Summer School, did. Her website, AskReddit Explorer, allows you to analyze recent questions posted in AskReddit. Using a FormFunction, the visitor is asked to choose one of the built-in classifiers available in Classify to get some insights about the AskReddit activity:

AskReddit Explorer

Choosing “Topic Analysis” gives you a bar chart of post counts by topic:

Bar chart by choosing Topic Analysis

Then you can click in “See Posts” to take a look at recent questions by topic:

Using See Posts to see recent questions by topic

I like to think of IFTTT as a universal bridge that brings together the ever-increasing diversity of the apps, services, and devices surrounding us. When I first started thinking about connecting the space of possible IFTTT recipes to the Wolfram Language a year ago, I couldn’t have guessed what a great solution the Wolfram Data Drop would be. Data Drop is able to store data in a standardized way, in “databins”, with definite IDs. Databins can be set up to interpret all sorts of incoming data, from very specific physical quantities to arbitrary inputs and expressions. For example, here is a recipe that drops your elevation in feet into a databin every time it changes.

First create the databin and tell it to interpret elevations in feet:

Create databin and tell it to interpret elevations

Then make an IFTTT recipe that drops your elevation into the databin every time it changes:

Make an IFTTT recipe the drops your elevation into a databin

With the data in a databin, it’s a simple call to UnitConvert to get the elevations in meters:

Using UnitCovert to get elevations in meters

Or to plot your changes in elevation over time:

Plot changes of elevation over time

There are more than 150 trigger channels that can be connected to Data Drop. I really encourage you to explore them by going through the fun and creative process of coming up with new recipes. Here is my latest creation. I’ve used a cloudBit module with a sound trigger to be notified and to add an entry to a databin whenever my home’s telephone is ringing:

Using cloudBit module to add to databin

This extracts the data in the bin as a time series:

Extracting data in the bin as a time series

Plotting the time series shows how often my telephone rings and when:

How often the phone rings and when

To get started making your own recipes, sign up for Data Drop and IFTTT and follow the simple steps explained in my quick introduction video (download notebook):

Please do share your own experiments with us on the Wolfram Community thread that I have started especially for IFTTT recipes. Also feel free to ask any questions or suggest any related ideas there. I hope you’ll have a chance to try it and that you’ll end up doing amazing things using the Wolfram Data Drop Channel:

Wolfram Data Drop Channel

Download this post as a Computable Document Format (CDF) file.

Posted in: Wolfram News
Leave a Comment

No Comments




Leave a comment

Loading...

Or continue as a guest (your comment will be held for moderation):