Recently I’ve got more and more into the ideas of the “Quantified Self” movement.  The motto is “Self-knowledge through numbers”, however it’s probably best summed up as “measure everything about your life, then act based on the data”.

Taking a data-based approach to life really appeals to me as a systems administrator, software developer and monitoring fan, but the idea of handing over things such as my heartrate, sleep patterns, browsing history, diet and all the other intimate details of my life to a corporate organisation who could potentially profit from it doesn’t sit very well with me.

Whilst searching for a solution that would allow me to track all the metrics that I wanted to in a single location without handing the data over to someone else, I found ConnectorDB.  ConnectorDB is a server you can run on your own hardware or virtual server (the writers recommend using Digital Ocean) and so I thought I’d give it a go.  I was very impressed with the results.

One of the devices I own is a Pine64 – it’s a single board computer much like the raspberry pi, however it has a 64-bit processor and up to 2G of RAM.  It turns out that this is ideal for running your own Quantified Self server as the overheads are really very minimal.

Installing ConnectorDB was really easy.  I followed the instructions, however after a conversation on Github about some of the issues I was having, I built my own 64-bit versions of the latest server and desktop client.

Once the server was up and running, I started to configure the data to be logged to it:

selection_004

The Chrome extension logs how long you’ve been on various websites, how often you’ve visited etc.

selection_005

The Android App logs your steps and other fitness information from GoogleFit, as well as your location, whether it’s plugged in or not and whether the screen is on or not.

selection_006

The “Desktop” plugin works well and tracks mouse-clicks, keyboard presses and the active window, so you can tell which programs you use the most.

Finally, you can add “manual” streams.  These are ones you create and update yourself.  I’ve created four so far, tracking sleep, happiness, anxiety and alcohol consumption and by using a star-rating, I can track (albeit subjectively) how these all interact with each other:

selection_007

This is my first proper foray into Quantified Self, and so far it’s been incredibly painless and really quite simple.  The fact that I have complete ownership over my data is also incredibly reassuring, and as the developers of ConnectorDB are open to ideas and suggestions I think it’s going to be a part of my life for quite a while to come!

EDIT: If you’re using linux and run i3wm as your window manager, checkout my py3status plugin that will give you access to your stats in the taskbar:

selection_008

EDIT: Metrics currently being tracked:

Someone asked on Twitter what I was tracking (https://twitter.com/lukeb3000/status/834706026595221505) so here’s the current list:

  • Automated Recording via Android App:
    • Steps Taken
    • Location
    • Phone Plugged In
    • Phone screen on/off
  • Automated Recording via Chrome Browser Plugin:
    • Sites visited
  • Automated recording via Desktop Software
    • Window titles
    • Mouse Clicks
    • Keyboard presses
  • Manual recording via web interface (star rating system)
    • Sleep Quality
    • Happiness
    • Anxiety
    • Alcohol Intake
Advertisements