Contact Me

Use the form on the right to get in touch with Chris.


Wolfville, Nova Scotia


My Semi-automated Diary

Chris Campbell


One of the neat things about geeks is that we like to simplify things using semi-complicated methods. It's an investment of time up front that pays off down the road by making things easier. The exploration is a lot of fun and there is a lot of tweaking along the way to make it work just right. Many people do this in different ways as they figure out their preferred methods. I love keeping a journal with the Day One app on my Mac, iPhone, and iPad. At a basic level it's a diary that allows you to write and save photos. For many people I suspect that is how they use it. But it's also built in a clever way that allows you to do all sorts of interesting other things with it and that's where you can have a lot of fun with it (if that is the sort of thing that you are in to).

When you create a new entry, Day One can find your location and weather to keep track of that along with the words that you write. If you take a photo it can add the location and time as well. If you add a photo that you've taken it will ask if you want to change the date, time, and location to the data embedded in the photo. To go beyond simple GPS info, you can also choose a location based on Foursquare's database, so that can be handy if you are at a specific place. On the iPhone you can also record things like the number of steps you've taken (if you have an iPhone 5S with the M7 chip). By syncing through Dropbox or iCloud it makes for a powerful way to keep track of things whereever you are.

Through various other services I write and track things every day. Wouldn't it be nice to have that show up in your diary too? Other folks have thought that and there are few different ways to do it with varying levels of complication. The first system that I used was Brett Terpstra's Slogger Ruby script. It's a neat way to create automated Day One entries for various things that you'll share online like your Tweets, bookmarks, songs listened to, etc. It's a bit esoteric to set up (with a powerful range of plugins) and it served me well for a long time. With a new laptop I was thinking that I wanted something a bit simpler so I switched to Craig Eley's Sifttter Ruby script.

Sifttter uses the almost-magical IFTTT service to collect data from your online sharing into text files. Then when you run the script (or automate the script to run before you sleep) it creates a summary entry for the day using the contents of each of the files. Right now it saves my tweets, my Foursquare checkins, my Pinboard bookmarks, my played songs, my bike rides logged at Strava, my films watched on Letterboxd, and my weight logged in Fitbit. The IFTTT recipes append an entry to text files with the date, so it gets updated during the day. At the end of the day the Ruby script runs and creates a nice summary of what I've been up to.

An automated system isn't the same as writing a journal entry yourself, but it is a way to keep things recorded that I log every day. It allows me to look back at a day and remember what I've done which can give you a prompt for writing, or to see how things were going for me. It was a bit of a challenge to set up, but now I love having diary entries for every day even if I don't think about writing one.