Wednesday, November 23, 2011

Funf Update: v0.3.0, Google Group, and More

We had several key releases and updates to the Funf project over the last 2-3 weeks. You might already be aware of at least some of them, but in case you aren't, this post should lay them out for you.

We also want to thank everyone who sent us comments and feedback. Funf is still in a very early alpha stage, and any comments on  the code, the app, or our documentation helps us find issues and prioritize our tasks. 

First of all, we decided that a Google Groups mailing list would be the best place for developer-level updates as well as an open discussion between anyone interested in the project. Check it out here: Funf-Developer Google Group.

Funf Developer Framework version 0.3 released
We made some fixes and a significant update to the Funf framework's internals:
The main change is an updated internal communication mechanism for probes. They now use PendingIntents vs Broadcasts, which is much more reliable (we realized that for periods of intense probe communication, the IPC mechanism is overloaded and messages get lost...). The change adds higher reliability to the whole system.

In addition, the updates lower startup times (as BroadcastsReceivers no longer have to be dynamically registered). This leads to: 
    • Better security (Rely on Android to find out requesting package, instead of complicated nonce exchange)
    • Probes now conduct all actions on a separate thread, and shut down on their own if they have no data requests pending.
    • Separated probe status messages, into details (constant probe information) and status (transient state information). More details in ProbeCommunication.

Funf Journal App version 0.2 released
We also updated the Funf Journal app on the market. The new version incorporates the updated framework. Most of the changes are under the hood, but this greatly increases reliability and performance of the app. In addition we made a few small changes to the UI: 

  • Updated probes tab interface to make it clearer how to turn on and off all probes (see pic below).
  • Stabilized sorting of probes to be alphabetical by category, then by name.
  • Password is now cancelable after you have set it once.

Funf Sample Visualization Script :

We also released a sample visualization script for data collected with the Funf Journal app.
This one has been out for a few weeks as we were testing it, but last week we also launched an updated version that is more robust in handling errors in the data files (which may happen every now and then), and has some other added functionality.

This is not meant to be a tool to fully analyze your collected data, but mostly give you some hint at what can be done with the data. The script also decrypts all of your data files and merges it into an SQLite databas file, which allows you to directly poke into the data yourself, including the many probes not currently visualized, We hope that this will inspire other developers to come up with more interesting visualizations (*hint*), or other services where this data could be imported to.

As you see we've been busy... there are several more updates coming up soon, including more new probes and also new Funf tutorials. Going forward we'll do our best to update here more often, and also start a more structured version release schedule. Stay tuned!

Wednesday, October 5, 2011

Funf is officially launched!

Today is a double celebration for us: the official (and initial) release of the Funf Open Sensing Framework open sourced codebase, and at the same time, the launch of the Funf Journal app on on the Android market!

What is Funf?
The Funf Open Sensing Framework is an extensible sensing and data processing framework for mobile devices. The core concept is to provide an open source, reusable set of functionalities, enabling the collection, uploading, and configuration of a wide range of data types. This application is being developed by the Human Dynamics research group at the MIT Media Lab, and leverages our experience in developing and deploying social and behavioral sensing applications for mobile devices.

What is Funf Journal?
Funf Journal is an Android application for researchers, self-trackers, and anyone interested in collecting and exploring information related to the mobile device, its environment, and its user's behavior. It is built using the Funf framework and makes use of many of its built-in features.

Why Are We Doing This? (Read: Motivation)
As truly ubiquitous wearable computers, today’s mobile phones are quickly becoming the primary source for social, behavioral, and environmental sensing and data collection. Phone-based sensor data is used for enabling a broad range of research projects and application domains: research in areas of health and wellness, environmental sensing, sociological and psychological investigations, support for disaster and crisis response, as well as event triggers that can be used for building richer and more personalized mobile experiences, are just a few examples for uses of this kind of data.

Google’s Android platform has allowed researchers and developers to do more things with mobile devices than ever before. However, there is still a great gap between having API calls for accessing on-phone sensors and information, to having a "deployable" system or an end user application that fully utilizes this access. There are many additional components that need to exist for enabling this, which we had already built and deployed in the field during a 15 month long living laboratory deployment during 2010-11. Such additional components include, for example, specialized mechanisms for privacy preserving data collection (e.g. hashing human readable text so that its useful for scientific analysis but does not expose the original information), delay tolerant communication with a backend server (data collected locally when server not available, and uploaded in background whenever users connect to the network), “smart” data collection that maximizes battery life, ability to remotely configure the data collection settings, option to push software updates remotely, encrypting data files on the SD card for added protection, and so on.

Rather than having different developers and research teams re-invent the wheel, we are aiming to share the tools and experience we have already gained through our past deployments, and turn our system into an open source framework for researchers, developers, and end-users. We hope to foster a community around these ideas, where new development efforts would go towards extending a common platform rather than creating redundant functionality.

Looking Forward
Remember, this is just the first release of both the app and the framework. This means both are still in beta stage, and there are bound to be quirks and kinks - so  your feedback (and patience) are greatly appreciated. We also have a lot in store as far as features and capabilities, and you'll be seeing more of these in upcoming versions, so stay tuned. We are planning to release early and often, and we are looking forward to your comments and suggestions!