Sunday, January 6, 2013

IFTTT - If This Then That

IFTTT is  a web-based service that allows any user to sign up and associate events and actions with their various social media and online accounts. For example, you could set up an action that triggers a Tweet whenever you post to your blog, or you could setup a trigger to send your phone an SMS message if the temperature reaches a certain level.

A number of predefined services are setup (see image below) such that actions can be associated with services readily. For example, setting up the example triggers I mentioned above required perhaps a dozen clicks and a few keystrokes, perhaps a minute of effort.


Thursday, January 3, 2013

Cosm, a good first stop for things

Cosm - a data exchange platform for the Internet of Things

For me Cosm was an early stop in my exploration of sensors and Internet-connected devices. As I prototyped a remote sensing device using the Arduino open-source hardware development platform, quickly the question arose question: "I built in Internet protocol connectivity, but how do I web-enable the device?" The immediate and easiest answer was Cosm which changed it's name from Pachube after being acquired by LogMeIn, an information technology remote access solution provider.

Cosm  provides a web-based platform to which you can connect your Internet-connected device. Cosm includes a web API so your device can easily send and receive data to/from the Cosm servers. Using Cosm with your device is as simple as signing up for a free Cosm account via their website, then using the API to send data to your Cosm account. An a Cosm client example using Arduino shows just how easy it is to send data to Cosm; the actual C code for the connection is shown at bottom.

Cosm supports JSON, XML and CSV data formats and leverages a flexible REST API so that any web-enabled device can store and manage data on Cosm. Compare this to say If This Then That, which serves as an application level central dispatch, in which application events from one of your services can send events to other services (when I post to my blog, send a tweet). Cosm provides a general purpose HTTP-based foundation to store your device and sensor data as well as a central point in which you can build out your own network.

// this method makes a HTTP connection to the server:
void sendData(int thisData) {
  // if there's a successful connection:
  if (client.connect(server, 80)) {
    Serial.println("connecting...");
    // send the HTTP PUT request:
    client.print("PUT /v2/feeds/");
    client.print(FEEDID);
    client.println(".csv HTTP/1.1");
    client.println("Host: api.pachube.com");
    client.print("X-PachubeApiKey: ");
    client.println(APIKEY);
    client.print("User-Agent: ");
    client.println(USERAGENT);
    client.print("Content-Length: ");

    // calculate the length of the sensor reading in bytes:
    // 8 bytes for "sensor1," + number of digits of the data:
    int thisLength = 8 + getLength(thisData);
    client.println(thisLength);

    // last pieces of the HTTP PUT request:
    client.println("Content-Type: text/csv");
    client.println("Connection: close");
    client.println();

    // here's the actual content of the PUT request:
    client.print("sensor1,");
    client.println(thisData);
  } 

Wednesday, January 2, 2013

Path - from one thing to the next

New beginnings; as of January 1, 2013, I have moved out of any operational role from Redspin,  the information security company that I founded in 2001. After a decade as a target on which to focus my passion for technology, it's time to focus my energy elsewhere. The sun sets, but it also rises. While many things are uncertain for me as to what the future brings (as perhaps with anyone), one constant in my life has been my interest in technology, the Internet and the business models and startup opportunities associated with this evolution.

As I focus my time and energy into the areas of technology innovation that interest me most, I thought a blog would be a useful tool to document my efforts. Not only will it provide a basis for communication, but the format will also provide a timeline as I evolve my thinking into my next business model or opportunity.

So I don't have any expectations as to what this blog will include or fulfill, other than it will provide a place for me to periodically document areas of technology that I am working on.