Pages

Showing posts with label Funf Journal. Show all posts
Showing posts with label Funf Journal. Show all posts

Tuesday, April 9, 2013

Announcing Funf Version 0.4!

The Behavio team is very happy to announce a major version update to Funf, our open source mobile sensing framework, accompanied by respective updates to Funf’s two user-facing components (Funf Journal and Funf In A Box).

In the time since our last major version update (Funf 0.3) last year, we’ve had a chance to see how the framework has been used by developers and end users. In addition, we compiled our own “to do” list of features that didn’t make it into the 0.3 release.

Our high level goals for Funf 0.4 were to increase reliability and performance, as well as minimize effort for the developer. This last part includes both developers who are using the standard Funf API and Android library to build apps, as well as developers working on their own probes and extending the Funf framework at the lower levels (a “probe” is the basic component type in Funf which is responsible for sensing or detecting some type of data, and reporting it to software clients who requested the information. Funf 0.4 comes with 38 built-in probes!)

Most of the changes in this release are under the hood. It is a major release, and as such it breaks some compatibility with Funf 0.3 based apps.


The following diagram illustrates the high-level structure of the updated Funf architecture:

Funf phone-side architecture: high-level

Key updates:
  • Funf now runs as a single service instead of a service per probe.
  • Internal communication now implemented using internal function calls in the same JVM rather than inter-process communications. 
  • Probes: Probe data exchange re-architected to use a GSON/JSON implementation.
  • Pipelines: Generalized pipeline interface.
  • Configuration: Extensive redesign of the configuration process
  • Time normalization improvements. In particular, added ability to set configuration values of less than 1 second.
  • Added dependency to modified Gson 2.1 library (see downloads page)
  • Bug fixes.
For additional details see the detailed 0.4 release overview.

If you’re a user of Funf Journal, Funf In A Box, or any other Funf-based app that has been upgraded to version 0.4, you’ll enjoy higher stability and reliability out of the box.


           
Funf Journal: New version and updated look


We’ve also refreshed the look of Funf Journal to match the Android style guide, and tested it with devices running up to Android 4.2 Jellybean.

For all components, please let us know if you find any issues with this release.

Finally, as Funf was also just accepted to Google's Summer of Code program, if you are a student and interested in spending the summer contributing to Funf (and being paid by Google), you should consider applying.

We hope you enjoy Funf and find it useful!

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!