Low Friction
Personal
Data Collection

@aaronpk • aaronparecki.com
Quantified Self • San Francisco • October 2013
Things I track inconsistently

 One photo every day – off and on since 2007
 Bike Rides – Usually rides only > 1 mile – Strava

 Heart Rate – During bike rides or other activities – Strava
 Food I Eat – Aug 19-present – text file on my phone
Things I track consistently

 Location: GPS (since 2008) iPhone
 Location: Checkins (since 2009) Foursquare
 Sleep (since November 2011) Jawbone UP

 Weight (since October 2011) Withings Scale

@aaronpk
Tracking My Location

aaronparecki.com

 One decimal point of precision (about 5km)
 City name
 Local time and timezone
Tracking My Location

Automatic reply to an SMS

 Four decimal points of precision (within a block)
 City name
 Local time and timezone
Tracking My Location

Hardware GPS Logger (2007)

@aaronpk
Tracking My Location

GPS-Enabled Phone (2008-2009)

@aaronpk
Tracking My Location

Geoloqi for iPhone (2010-Present)

@aaronpk
@aaronpk
Tracking My Location

Stored in PostGIS
 Queryable by timestamp or by area
Tracking My Location

Timezone API
Created with github.com/esri/Terraformer

curl http://api.example.com/?lat=45.5118&lng=-122.6433
{
status: "ok",
timezone: "America/Los_Angeles"
}
Tracking My Location

SMS Interface
Google Voice
sends me an
email with the SMS

You send
me an SMS

Your
Phone

Google
Voice

Google Voice
sends you an SMS
from my phone
number

A Gmail filter
catches it and
forwards it to my
web server

Gmail
notification
of SMS

then sends an email
reply to the “from”
address of the SMS
notification

aaronparecki.com

My web server
retrieves my
location data

* it would also be simpler to use Twilio for this, but I like that the SMSs are to and from
my own number, hence the Google Voice round trip
** if you have an Android, you can just use Tasker
@aaronpk
Tracking My Weight

Publishing My Weight
aaronparecki.com/metrics
Tracking My Weight

Withings Wireless Scale – 2011-Present

@aaronpk
Tracking My Weight

Weight Data Flow
IFTTT sends me
an email with
all the data

Withings API
reports to IFTTT

Withings
Scale

IFTTT

A Gmail filter catches it
and forwards it to my
web server and creates a
new post

Gmail
notification

aaronparecki.com

* the Withings API was too difficult to use directly, so I had to go through IFTTT as a proxy. I would
love to find a simple Ruby/Sinatra or PHP app that someone else has written as a template!
Tracking My Weight

Withings Wireless Scale

@aaronpk
Tracking My Weight

Withings Wireless Scale
Geoloqi
Acquired

@aaronpk
Tracking My Weight

Publishing My Sleep
aaronparecki.com/metrics

 Local time based on the timezone of my location

 Includes city I slept in from my GPS data
Tracking My Weight

Sleep Cycle App
 Place your phone on your bed
 Requires your phone to be
plugged in

@aaronpk
Tracking My Weight

Original Fitbit
 To track sleep, requires you wear it
around your wrist
 I was not able to sustain this because of
the extra effort of using the wrist strap
 Long button press to put into “Sleep”
mode, gives visual feedback but no
vibration (timer starts running)

@aaronpk
Tracking My Sleep

Jawbone UP – 2011-Present

 Always on my wrist, so I never forget about it
 Battery lasts 8-10 days

 Long button press to put into “Sleep” mode,
gives visual and tactile feedback
@aaronpk
Tracking My Sleep

Sleep Logs
 Times are localized
using location data
 Timezone is found
using Terraformer
 Using a reverse
geocoder to add
City, State, Country

@aaronpk
Tracking My Sleep

Sleep Logs by City
Tracking My Sleep

Sleep Logs by City
Tracking My Sleep

Sleep Logs

Nov 2011 – September 2013
Tracking My Sleep

Sleep Logs

Nov 2011 – September 2013
Private
Database

@aaronpk

Public

aaronparecki.com
Some patterns are only
visible after looking at a
long-term dataset.

@aaronpk
I set up systems to passively
collect data so that I have
lots to work with later!

@aaronpk
Low Friction:

collect passively
analyze actively

@aaronpk • aaronparecki.com

Low Friction Personal Data Collection - Quantified Self Global Conference 2013

  • 1.
    Low Friction Personal Data Collection @aaronpk• aaronparecki.com Quantified Self • San Francisco • October 2013
  • 2.
    Things I trackinconsistently  One photo every day – off and on since 2007  Bike Rides – Usually rides only > 1 mile – Strava  Heart Rate – During bike rides or other activities – Strava  Food I Eat – Aug 19-present – text file on my phone
  • 3.
    Things I trackconsistently  Location: GPS (since 2008) iPhone  Location: Checkins (since 2009) Foursquare  Sleep (since November 2011) Jawbone UP  Weight (since October 2011) Withings Scale @aaronpk
  • 4.
    Tracking My Location aaronparecki.com One decimal point of precision (about 5km)  City name  Local time and timezone
  • 5.
    Tracking My Location Automaticreply to an SMS  Four decimal points of precision (within a block)  City name  Local time and timezone
  • 6.
    Tracking My Location HardwareGPS Logger (2007) @aaronpk
  • 7.
    Tracking My Location GPS-EnabledPhone (2008-2009) @aaronpk
  • 8.
    Tracking My Location Geoloqifor iPhone (2010-Present) @aaronpk @aaronpk
  • 9.
    Tracking My Location Storedin PostGIS  Queryable by timestamp or by area
  • 10.
    Tracking My Location TimezoneAPI Created with github.com/esri/Terraformer curl http://api.example.com/?lat=45.5118&lng=-122.6433 { status: "ok", timezone: "America/Los_Angeles" }
  • 11.
    Tracking My Location SMSInterface Google Voice sends me an email with the SMS You send me an SMS Your Phone Google Voice Google Voice sends you an SMS from my phone number A Gmail filter catches it and forwards it to my web server Gmail notification of SMS then sends an email reply to the “from” address of the SMS notification aaronparecki.com My web server retrieves my location data * it would also be simpler to use Twilio for this, but I like that the SMSs are to and from my own number, hence the Google Voice round trip ** if you have an Android, you can just use Tasker
  • 12.
  • 13.
    Tracking My Weight PublishingMy Weight aaronparecki.com/metrics
  • 14.
    Tracking My Weight WithingsWireless Scale – 2011-Present @aaronpk
  • 15.
    Tracking My Weight WeightData Flow IFTTT sends me an email with all the data Withings API reports to IFTTT Withings Scale IFTTT A Gmail filter catches it and forwards it to my web server and creates a new post Gmail notification aaronparecki.com * the Withings API was too difficult to use directly, so I had to go through IFTTT as a proxy. I would love to find a simple Ruby/Sinatra or PHP app that someone else has written as a template!
  • 16.
    Tracking My Weight WithingsWireless Scale @aaronpk
  • 17.
    Tracking My Weight WithingsWireless Scale Geoloqi Acquired @aaronpk
  • 18.
    Tracking My Weight PublishingMy Sleep aaronparecki.com/metrics  Local time based on the timezone of my location  Includes city I slept in from my GPS data
  • 19.
    Tracking My Weight SleepCycle App  Place your phone on your bed  Requires your phone to be plugged in @aaronpk
  • 20.
    Tracking My Weight OriginalFitbit  To track sleep, requires you wear it around your wrist  I was not able to sustain this because of the extra effort of using the wrist strap  Long button press to put into “Sleep” mode, gives visual feedback but no vibration (timer starts running) @aaronpk
  • 21.
    Tracking My Sleep JawboneUP – 2011-Present  Always on my wrist, so I never forget about it  Battery lasts 8-10 days  Long button press to put into “Sleep” mode, gives visual and tactile feedback @aaronpk
  • 22.
    Tracking My Sleep SleepLogs  Times are localized using location data  Timezone is found using Terraformer  Using a reverse geocoder to add City, State, Country @aaronpk
  • 23.
  • 24.
  • 25.
    Tracking My Sleep SleepLogs Nov 2011 – September 2013
  • 26.
    Tracking My Sleep SleepLogs Nov 2011 – September 2013
  • 27.
  • 28.
    Some patterns areonly visible after looking at a long-term dataset. @aaronpk
  • 29.
    I set upsystems to passively collect data so that I have lots to work with later! @aaronpk
  • 30.
    Low Friction: collect passively analyzeactively @aaronpk • aaronparecki.com

Editor's Notes

  • #20 Too awkward to plug in every night, extra ritual to learn before going to sleep
  • #21 Too awkward to move to wrist strap, and “sleep” mode was a long press that gives no tactile feedback so you have to look at it to put it in sleep mode
  • #23 I download the data from the Jawbone API, correlate with my location to get the city and timezone to get the local time
  • #27 what causes these patterns?
  • #28 I need to look at more data across other things I track looking for patterns.
  • #29 day-to-day differences are not always visible, I’ve been able to see patterns I wouldn’t have by looking at an extended data set